使用Gmail 4.2.1发送HTML电子邮件

时间:2012-12-07 02:46:02

标签: android gmail

似乎Gmail 4.2.1可能已破坏HTML格式的电子邮件。以下代码在4.2.1之前完美运行。从Gmail发送的电子邮件包含所需的嵌入式链接,粗体和带下划线的字词。不幸的是,在更新到4.2.1之后,发送的电子邮件看起来好像已经删除了所有HTML格式。我希望可能有一个解决方法可能有人找到了吗?

final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("message/rfc822");
String[] toArr = new String[] { "someone@somewhere.com" };
intent.putExtra(Intent.EXTRA_EMAIL, toArr);
intent.putExtra(Intent.EXTRA_SUBJECT, "This is a subject");
intent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml("Hello, here is some <b>bold text</b> some <u>underline text</u> and <a href=\"http://www.google.com\">a link</a>."));

有趣的事情(或者可能不是?)是这封电子邮件消息的撰写预览显示所有粗体,下划线和链接的文本,就像人们期望的那样。但是当它被发送时,收件人会收到所有这些东西被删除的电子邮件。

是的,我知道this other question已经关闭了这个。我想也许它过早地关闭了,我希望这里的额外细节可能需要另外看。

更多信息:经过进一步研究,这个问题比通过意图发送HTML电子邮件更重要。如果使用具有一些格式(粗体,下划线,超链接等)的GMail Web应用程序创建草稿电子邮件,然后在您的GMail Android应用程序(v4.2.1)上打开该草稿电子邮件,则会显示您的所有格式都有保持。但是,如果您使用GMail Android应用程序发送该草稿电子邮件,则在发送电子邮件之前,您的所有格式都将被删除。

4 个答案:

答案 0 :(得分:3)

这几乎肯定是GMail 4.2.1中的一个错误。

截至2013年3月19日,GMail 4.3已经发布,似乎可以解决这个问题。

答案 1 :(得分:1)

我很抱歉你遇到了斯科特。我在去年12月向谷歌提交了一份错误报告,但这似乎只是一个黑洞。

我需要嵌入超链接。我最好的解决方法是在邮件中以纯文本形式发送text / plain或message / rfc822电子邮件。奇怪的是,Gmail认识到这一点,并试图将其封装在&lt; a&gt; &LT; / a&gt;标签。使用这种方法,我可以获得收件人发送和点击的链接,但它看起来像垃圾。

将URL格式化以使Gmail识别链接的整个文本并正确封装它也是一个挑战。

答案 2 :(得分:0)

在阅读了您的问题之后,我已经为此问题进行了大量浏览,我发现它here。它实际上显示了格式化Gmail正文的方式和原因。您也可以结帐链接。

我希望它会对你有所帮助。

感谢。

答案 3 :(得分:0)

private void sendMail(String appName, String playStoreLink) {
    String msg = "<HTML><BODY>Hello,<br>Recently,I downloaded <b><font color=\"red\">"+appName+"</font></b>"+
" from Play Store.I found this very challenging and a great game."+
            "<br>I would like to suggest you this game.<br><br><a href="+playStoreLink+">Download</a><br><br>"+
"<br>Thank You</BODY></HTML>";
    String sub = "Get it now. It is there in Play Store";
    Intent email = new Intent(Intent.ACTION_SEND);
    email.setType("text/html");
    email.putExtra(Intent.EXTRA_SUBJECT, sub);
    email.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(msg));
    email.setType("message/rfc822");
    startActivity(Intent.createChooser(email, "Choose an Email client :"));
}