使用Gmail 4.2.1发送HTML电子邮件

看起来,Gmail 4.2.1可能已经打破了HTML格式的电子邮件。 以下代码在4.2.1之前完美工作。 从Gmail发送的电子邮件中包含所需的embedded式链接,粗体字和下划线字。 不幸的是,在更新到4.2.1之后,发送的电子邮件就好像所有的HTML格式都被剥离了一样。 我希望可能有这样的解决方法,也许有人find了?

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>.")); 

有趣的事情(也许不是?)是这个电子邮件的撰写预览显示所有粗体,下划线和链接的文本,因为人们会期望它出现。 但是,当它被发送,收件人得到的电子邮件与所有的东西被剥离出来。

是的,我知道关于这个closures的另一个问题 。 我想也许它是过早closures的,希望在这里额外的细节可能需要再看一看。

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

Solutions Collecting From Web of "使用Gmail 4.2.1发送HTML电子邮件"

这几乎可以肯定是GMail 4.2.1中的一个bug。

截至2013年3月19日,GMail 4.3发布,似乎修复了这个bug。

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

我的需要是embedded超链接。 我最好的解决方法是在邮件中以纯文本forms发送带有URL的text / plain或message / rfc822电子邮件。 Gmail奇怪地认识到这一点,并试图把它放在<a> </ a>标签中。 使用这种方法,我可以得到的链接发送和收件人可点击,但它看起来像废话。

将url格式化为Gmail也是一项挑战,Gmail可识别链接的整个文本并将其正确地包含在内。

在阅读完您的问题之后,我已经浏览了很多这个问题,并且在这里find了它它实际上显示了格式化Gmail正文的方式和原因。 你也可以签出链接。

我希望这会帮助你。

谢谢。

 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 :")); }