使用意图从Android应用发送HTML电子邮件

时间:2017-04-10 10:47:09

标签: android html email android-intent

我正在尝试使用意图从Android应用发送HTML电子邮件。我使用以下代码:

            Intent i = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto",senderMail, null));
            i.setType("text/html");
            i.putExtra(Intent.EXTRA_EMAIL, new String[]{senderMail});
            if (strShare == "Y")
                i.putExtra(Intent.EXTRA_CC, new String[]{email});
            else
                i.putExtra(Intent.EXTRA_BCC, new String[]{email});
            i.putExtra(Intent.EXTRA_SUBJECT, subjectMessage);
            String htmlData = (new StringBuilder()
                    .append("<html><head></head><body><p><b>Hello World!</b></p>")
                    .append("<a>http://www.google.com</a>")
                    .append("<small><p>More content</p></small></body></html>")
                    .toString());
            i.putExtra(Intent.EXTRA_TEXT,fromHtml(htmlData));
            i.putExtra(Intent.EXTRA_HTML_TEXT,htmlData);
            i.setData(Uri.parse("mailto:" + senderMail));
            try {
                startActivity(Intent.createChooser(i, "Send mail..."));
            } catch (android.content.ActivityNotFoundException ex) {
                Utils.displayAlert("There are no email clients installed.", getActivity());
            }

    public static Spanned fromHtml(String source) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            return Html.fromHtml(source, Html.FROM_HTML_MODE_LEGACY);
            } else {
        return Html.fromHtml(source);
        }
    }

我也尝试过使用:

            i.setType("message/rfc822");

我试过没有EXTRA_HTML_TEXT。

当我选择gmail应用程序发送电子邮件时,一切都按预期工作,并发送HTML电子邮件。但是当我选择内置的电子邮件应用程序时,HTML代码在电子邮件编写器中正确呈现(所以我知道它处理HTML代码),但当电子邮件到达目的地时,它是纯文本电子邮件,内容是纯文本,所有内容都是从中删除了HTML标记。

我正在使用Android Studio 2.3并在两个不同的仿真器(Nexus 5 API 23和Nexus 5 API 21 x86)和摩托罗拉手机上运行代码,所有这些都具有相同的结果。

有人可以告诉我,我做错了吗?

0 个答案:

没有答案