从应用程序发送带有附件的电子邮件

时间:2010-11-10 21:29:58

标签: java android android-intent email-attachments

我正在创建一个具有“导出”功能的应用,该功能可将用户的数据转换为CSV文件,并允许用户将其作为附件发送给某人(可能是他们自己)。

CSV文件已成功创建,但当我尝试发送电子邮件时,遇到问题。该设备看起来像是要发送带有相应附件的电子邮件,但是当收到电子邮件时...根本没有附件......

以下是我用来发送电子邮件的代码:

final Intent email = new Intent(android.content.Intent.ACTION_SEND);

  email.setType("text/html");
  email.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.email_subject));
  email.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(getString(R.string.email_1)));

  email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///" + getString(R.string.csv_title)));


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

3 个答案:

答案 0 :(得分:2)

i've done for send any file from SD card with mail attachment..

Intent sendEmail= new Intent(Intent.ACTION_SEND);
       sendEmail.setType("rar/image");
       sendEmail.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new        
         File("/mnt/sdcard/download/abc.rar")));
         startActivity(Intent.createChooser(sendEmail, "Email:"));

答案 1 :(得分:0)

需要正确的文件路径,如果在SD卡上则...

sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse 
("file://"+Environment.getExternalStorageDirectory()+getString(R.string.csv_title)"));

在此处查看有关设置相应文件路径的附加信息

http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

答案 2 :(得分:0)

GMail应用程序接受文件:// Uris只有当他们在SD卡上...并且在Android 1.6设备上我甚至有一个问题,它只接受file:// sdcard / * Uris而真正的外部存储器这个特定的设备在另一条路上。

无论如何,我有一个更好的附件行为,因为我通过ContentProvider提供它们。