android - 以编程方式在android中发送带附件的电子邮件

标签 android android-intent outlook

我正在使用以下代码从我的 Android 应用程序发送电子邮件:

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, new String[]{"email@yahoo.com"});          
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "message");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
email.setType("plain/text");
startActivity(Intent.createChooser(email, "Choose an Email App:"));

这适用于所有电子邮件发送应用程序,但它显示了太多选项,如 Facebook、Twitter、蓝牙,无法发送此电子邮件。我只想查看可供选择的电子邮件应用程序。

因此,我将 email.setType("plain/text"); 替换为 email.setType("message/rfc822");

现在它只显示电子邮件应用程序,并且适用于我设备中安装的所有电子邮件应用程序,但 outlook 应用程序除外。 Outlook 应用程序无法正确发送附件。在接收端,我收到奇怪的字符而不是附件。

然后,我将 email.setType("message/rfc822"); 替换为 email.setType("application/octet-stream");

这解决了 outlook 附件问题,但现在我无法使用默认的 android 电子邮件应用程序发送电子邮件。它发送不带附件的电子邮件。

最佳答案

使用此代码附加文件并通过电子邮件发送

Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_SUBJECT, "subject");
email.putExtra(Intent.EXTRA_TEXT, "text");
Uri uri = Uri.parse("file://" + myFile.getAbsolutePath());
email.putExtra(Intent.EXTRA_STREAM, uri);
email.setType("message/rfc822");
startActivity(email);

关于android - 以编程方式在android中发送带附件的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35738338/

相关文章:

android - 跟进 Android 应用程序的密码保护启动

Outlook 邀请的 html 未正确呈现

excel - 从全局地址簿中获取电话号码

java - 为 eclipse 运行 Google 插件需要错误 : jdk1. 7 或更高版本

安卓 Intent .ACTION_VIEW

android - 从 WEB 浏览器启动 Android 应用程序

c# - 如何将多个收件人添加到 mailitem.cc 字段 c#

android.support.v4.view.ViewPager 不会禁止 android 2.2 中的子滚动?

java - 如何将整个 ListView 项目从一个 Activity 传递到 Android 中的另一个 Activity

java - 更改 OpenGL 来源