当我选择在我的电子邮件客户端中阻止HTML电子邮件时会发生什么?
我尝试了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
令人惊讶的是,谷歌并没有帮助我。
答案 0 :(得分:2)
似乎Outlook不使用text / plain替代,并且当配置为以纯文本形式显示消息时,它使用text / html部分,转换为纯文本。
我在以下链接中找到了该行为的确认信息:
其他(大多数?)电子邮件客户端(例如,Thunderbird)在配置为将消息显示为文本时将显示文本/普通替代方案。但Outlook所做的(使用text / html部分)似乎并不是一个错误 - 来自维基百科MIME:
系统可以选择他们能够处理的“最佳”表示;一般来说,这将是系统可以理解的最后一部分,尽管其他因素可能会影响这一点。
显然,我们还建议在HTML和TEXT版本中使用类似的内容,以避免被归类为垃圾邮件 - 来自同一维基百科页面:
反垃圾邮件软件最终采用了这一技巧,在多部分/替代消息中惩罚了包含非常不同文本的消息。
所以,我建议构建text / plain部分,将text / html部分的内容转换为文本,以便
答案 1 :(得分:0)
大多数现代浏览器都会使用text / plain替代方案来显示没有HTML的电子邮件(因此他们会切换到电子邮件的纯文本版本)。 如果没有,他们将剥离HTML并只显示文本。或者,换句话说,解析html而不是使用它。 除此之外,我很确定你能找到一些不能剥离html的邮件客户端,并且只会显示原始的html代码。