发送HTML电子邮件意图时,如何避免< img >被删除?

14

注意:我知道SO上有很多类似的问题。然而,我不想嵌入这些图像,我只希望HTML保持原样。

似乎通过意图发送HTML邮件的常规方法是使用Html.fromHtml(String)。

例如:

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/html");
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
intent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(htmlString));
startActivity(intent);
然而,根据文档说明,它会替换所有的<img>标签成一个特殊字符,以便与ImageGetter一起使用。
我不想将这些图片内联和附加到文章中。我只希望在HTML中保留<img>标签,不需要附加这些图片。
例如,我希望: <img src="http://www.somedomain.com/somewebsite/someimage.jpg" /> 保持原样。
这样能做到吗?
谢谢。
2个回答

11

符合标准的电子邮件客户端通常会删除img标签,直到用户授权为止。

电子邮件中的图片可以通过请求服务器的方式识别您的计算机,因此这是一种安全措施,除非有一个新的、更好的系统被创建出来,否则它将保持不变。


1
关于电子邮件客户端剥离img标签的问题: 它并不完全正确,这并不是一个符合标准的问题,而是一个安全/隐私问题。此外,大多数电子邮件客户端不会删除引用附加图像而非URL的img标签。 - SteelBytes
1
我不确定这是否回答了问题。OP正在尝试在电子邮件中发送图像标签,但这并没有起作用;让它们在客户端上显示(处理剥离img标签的客户端)是完全另一个问题。 - zeh
我该如何授予这个权限? - Jorgesys

0
你确定你不只是想要以下代码吗? intent.putExtra(android.content.Intent.EXTRA_TEXT, htmlString); 将 Spanned 附加到意图中似乎很奇怪,而不是直接交付 HTML 本身。

1
我尝试过,但是像 Gmail 这样的电子邮件应用程序会将 HTML 代码显示为原始文本。它似乎无法呈现出来。 - cottonBallPaws
不,原帖作者所做的是正确的方法。如果传递的文本是字符串,则即使带有HTML标记,它也会被解释为纯文本。 - zeh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接