24

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

有趣的事情(或者可能不是?)是这封电子邮件的撰写预览显示了所有粗体、下划线和链接的文本,正如人们所期望的那样。但是当它被发送时,收件人会收到一封去掉所有内容的电子邮件。

是的,我知道关于此的另一个问题已关闭。我认为它可能过早关闭,我希望这里的额外细节可能值得再看一次。

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

4

4 回答 4

3

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

截至 2013 年 3 月 19 日,GMail 4.3 发布,似乎修复了该错误。

于 2013-03-19T11:34:37.070 回答
1

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

我需要嵌入超链接。我最好的解决方法是发送 text/plain 或 message/rfc822 电子邮件,其中 URL 为消息中的纯文本。奇怪的是,Gmail 识别出这一点并尝试将其包含在 <a></a> 标记中。使用这种方法,我可以获得收件人发送和点击的链接,但它看起来像废话。

对 URL 进行格式化以使 Gmail 能够识别链接的整个文本并正确包含它也是一个挑战。

于 2013-01-25T22:33:58.070 回答
0

在阅读了您的问题后,我为这个问题浏览了很多,我在这里找到了它。它实际上显示了格式化 Gmail 正文的方式和原因。您也可以结帐链接。

我希望它会帮助你。

谢谢。

于 2013-01-23T16:36:08.940 回答
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 :"));
}
于 2013-01-30T04:49:50.383 回答