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

我正尝试使用意图从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)上和摩托罗拉手机上运行代码,所有结果都相同。

任何人都可以告诉我我做错了吗?

链接地址: http://www.djcxy.com/p/23265.html

上一篇: Sending HTML email from Android app using an intent

下一篇: Send email directly with no Intents