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

时间:2013-03-26 19:59:57

标签: java html html-email email-client

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

  1. 是否从我的电子邮件中删除了HTML内容?
  2. 是否在MIME内容中查找备用文本部分?
  3. 我尝试了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
    

    令人惊讶的是,谷歌并没有帮助我。

2 个答案:

答案 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代码。