2

当我选择在我的电子邮件客户端中阻止 HTML 电子邮件时会发生什么?

  1. 它会从我的电子邮件中删除 HTML 内容吗?
  2. 它是否在 MIME 内容中寻找替代文本部分?

我尝试了 Outlook 2010,它剥离了 HTML 内容并只显示了文本。我不确定它是否因为它找不到文本内容或 Outlook 只是停止寻找文本内容并剥离 HTML。

下面是我的代码片段,

//HTML Version
BodyPart htmlBodyPart = new MimeBodyPart();
htmlBodyPart.setContent(htmlContent, "text/html");

//Text Version
BodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setContent(textContent, "text/plain");

Multipart multipart = new MimeMultipart("alternative");
multipart.addBodyPart(textBodyPart); //add text part
multipart.addBodyPart(htmlBodyPart); //add html part

令人惊讶的是,谷歌在这方面没有帮助我。

4

2 回答 2

2

Outlook 似乎不使用 text/plain 替代方案,并且当配置为将消息显示为纯文本时,它使用 text/html 部分,转换为纯文本。

我在以下链接中找到了对该行为的确认:

其他(大多数?)电子邮件客户端,例如 Thunderbird,在配置为将消息显示为文本时将显示 text/plain 替代。但是 Outlook 所做的(使用 text/html 部分)似乎不是一个错误 - 来自 Wikipedia MIME

然后系统可以选择它们能够处理的“最佳”表示;一般来说,这将是系统可以理解的最后一部分,尽管其他因素可能会影响这一点。

显然,还建议在 HTML 和 TEXT 版本中包含相似的内容,以避免被归类为垃圾邮件 - 来自同一个 Wikipedia 页面:

反垃圾邮件软件最终赶上了这个技巧,在多部分/替代消息中惩罚具有非常不同文本的消息。

所以,我建议构建 text/plain 部分,将 text/html 部分的内容转换为文本,以便

  • 所有配置为将电子邮件显示为文本的电子邮件客户端都以相同的方式显示电子邮件内容
  • 由于内容不同,被分类为垃圾邮件的概率不会增加
于 2013-04-08T14:30:37.673 回答
0

大多数现代浏览器将使用 text/plain 替代方案来显示没有 HTML 的电子邮件(因此它们将切换到电子邮件的纯文本版本。如果不可用,它们将剥离 HTML 并仅显示文本。或者,在换句话说,解析 html 而不要使用它。除此之外,我很确定您将能够找到一些无法剥离 html 的邮件客户端,并且只会向您显示原始 html 代码。

于 2013-04-10T11:49:12.913 回答