为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Android中发送带有文件附件的电子邮件

如何在Android中发送带有文件附件的电子邮件

哔哔one 2019-11-14 09:16:10
我想在邮件中附加.vcf文件并通过邮件发送。但是邮件是在没有附件的地址上收到的。我已经使用了下面的代码,但是代码并不知道我错了。try {        String filelocation="/mnt/sdcard/contacts_sid.vcf";        Intent intent = new Intent(Intent.ACTION_SENDTO);      intent.setType("text/plain");        intent.putExtra(Intent.EXTRA_SUBJECT, "");        intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+filelocation));        intent.putExtra(Intent.EXTRA_TEXT, message);           intent.setData(Uri.parse("mailto:"));           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   activity.startActivity(intent);  activity.finish();  } catch(Exception e)  {     System.out.println("is exception raises during sending mail"+e);}
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

Folder_name是手机内部存储器中文件的名称。(实际上是EXTERNAL_STORAGE)。file_name是您要发送的文件的名称。


private void ShareViaEmail(String folder_name, String file_name) {

    try {

        File root= Environment.getExternalStorageDirectory();

        String filelocation= root.getAbsolutePath() + folder_name + "/" + file_name;

        Intent intent = new Intent(Intent.ACTION_SENDTO);

        intent.setType("text/plain");

        String message="File to be shared is " + file_name + ".";

        intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");

        intent.putExtra(Intent.EXTRA_STREAM, Uri.parse( "file://"+filelocation));

        intent.putExtra(Intent.EXTRA_TEXT, message);

        intent.setData(Uri.parse("mailto:xyz@gmail.com"));

        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);


        startActivity(intent);

    } catch(Exception e)  {

        System.out.println("is exception raises during sending mail"+e);

    }

}


查看完整回答
反对 回复 2019-11-14
?
12345678_0001

TA贡献1802条经验 获得超5个赞

使用以下代码在电子邮件中发送文件。


String filename="contacts_sid.vcf"; 

File filelocation = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), filename);

Uri path = Uri.fromFile(filelocation); 

Intent emailIntent = new Intent(Intent.ACTION_SEND);

// set the type to 'email'

emailIntent .setType("vnd.android.cursor.dir/email");

String to[] = {"asd@gmail.com"};

emailIntent .putExtra(Intent.EXTRA_EMAIL, to);

// the attachment

emailIntent .putExtra(Intent.EXTRA_STREAM, path);

// the mail subject

emailIntent .putExtra(Intent.EXTRA_SUBJECT, "Subject");

startActivity(Intent.createChooser(emailIntent , "Send email..."));


查看完整回答
反对 回复 2019-11-14
  • 3 回答
  • 0 关注
  • 713 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信