Android - 发送带有样式 HTML 的电子邮件

Android - Send email with styled HTML

我收到一个服务器响应,它向我们提供了 HTML 以通过 gmail 发送。 这在应用程序的 iOS 副本上运行良好,但是文本在 Android 应用程序中只是以纯文本形式出现。

这是我们得到的响应的示例部分:

<html>
    <p style="color: #5987c6">My Shared Itinerary - John Smith.</p>
    <p>Hello.</p>
    <p>I want to share my Memmingen, DE trip itinerary with you.</p>
    <p>Shared using 
        <span style="color: #5987c6">Blah</span> by BlahBlah
    </p>
</html>

而且我尝试执行以下操作:

final Intent shareIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"));
shareIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
shareIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(new StringBuilder().append(testBody).toString()));

其中testBody设置为我上面给出的例子。 我只是想知道是否可以通过服务器的响应立即完成这项工作,或者我是否必须在收到响应后重新格式化? 感谢您的帮助

I get a server response which provides us with HTML to be sent via gmail.

不,这将是 "sent" 由用户选择的应用程序,来自设备上支持 ACTION_SENDTO mailto: Uri 的任何应用程序.或者,用户可以选择根本不发送电子邮件。

however the text just comes out as plain text in the Android application

由用户选择处理您的请求的应用决定如何处理您的内容。

您可以通过以下方式最大化此工作的几率:

  1. Using EXTRA_HTML_TEXT 以及 EXTRA_TEXT,其中 EXTRA_HTML_TEXT 具有原始 HTML

  2. 使用适合 what Html.fromHtml() supports 的 HTML,特别是不包括 span 标签或 style 属性。

这些步骤都不能保证 Gmail 或任何其他应用一定会忠实地呈现和使用您的 HTML 格式的邮件,但它们应该有所帮助。