使用 android 意图将 html 文件作为电子邮件正文内容发送

Posted

技术标签:

【中文标题】使用 android 意图将 html 文件作为电子邮件正文内容发送【英文标题】:Send html file as email body content using android intent 【发布时间】:2018-04-29 14:20:52 【问题描述】:

我有一个以 html 文档形式共享产品的电子商务应用。使用此代码,我可以将 product.html 作为附件发送。我想将 html 文档作为电子邮件正文而不是附件发送。

这是我的代码:

private void sendEmail(Context context, String emailTo, String emailCC,
                       String subject, String emailText, List<String> filePaths) 

    final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType(TEXT_HTML);
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]emailTo);
    emailIntent.putExtra(android.content.Intent.EXTRA_CC, new String[]emailCC);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);

    ArrayList<Uri> fileUris = new ArrayList<Uri>();
    for (String file : filePaths) 
        File fileIn = new File(file);
        Uri uri = Uri.fromFile(fileIn);
        fileUris.add(uri);
    

    emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, fileUris);
    context.startActivity(Intent.createChooser(emailIntent, context.getString(R.string.send_by_email))); 

【问题讨论】:

你能分享一下你的 html 文件是什么样子的吗? 【参考方案1】:

任何需要进入身体的东西都可以通过这种方式设置到你的意图中,例如将您的构建版本名称作为电子邮件的正文。您可以将其替换为您的 html 内容。从未亲自尝试过,您可能需要一些转换。

emailIntent.putExtra(Intent.EXTRA_TEXT, BuildConfig.VERSION_NAME);

【讨论】:

它只显示文件的路径,有没有办法把整个html文件作为邮件正文? 我假设您正在这样做。 emailIntent.putExtra(Intent.EXTRA_TEXT, fileUris);如果你这样做,你会得到你所看到的。您需要以文本格式获取文件的内容并添加它。 嘿,这行得通,但我将整个 HTML 代码作为正文,我想要的是内容。我的意思是渲染的 HTML 文件。你能帮我进一步吗? 如果它有效,你能接受这个答案并问另一个吗?

以上是关于使用 android 意图将 html 文件作为电子邮件正文内容发送的主要内容,如果未能解决你的问题,请参考以下文章

android省电开发之cpu降频

Android 自定义启动器 startActivity() 阻止 BOOT_COMPLETED 意图

正确的 Android 意图过滤器配置以将文件类型与 Activity 关联?

Android / Xamarin,按返回按钮后按意图打开文件并关闭应用程序

手把手教你Android来去电通话自动录音的方法

如何在android中使用意图过滤器获取数据