2017-06-05 22 views
0

我正在使用java代码撰写电子邮件并将邮件发送到MS Outlook 365帐户。 该消息组成如下:如何撰写多部分MIME混合邮件以在Outlook中正确显示它

  1. 纯文本部分;
  2. html只包含表格的部分;
  3. 纯文本部分;
  4. 文件附件。

我期望outlook将部分1-3显示为消息正文,最后一部分显示为附件。相反,它仅将第一部分显示为消息本身,并将其余部分显示为单独的附件。 我玩过不同的标题,但结果是一样的。它是MS堆栈的一些特性(交换,展望等)还是我做错了什么?

的原始消息是这里

Date: Mon, 5 Jun 2017 12:01:47 -0700 (PDT) 
From: [email protected] 
To: [email protected] 
Message-ID: <some id> 
Subject: Test email 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="----=_Part_0_2350964.1496689307498" 

------=_Part_0_2350964.1496689307498 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

Content before table 

------=_Part_0_2350964.1496689307498 
Content-Type: text/html; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

<html><body><table><tr><td>First parameter</td><td>value</td></tr><tr><td>Second row</td><td>42</td></tr></table></body></html> 
------=_Part_0_2350964.1496689307498 
Content-Type: text/plain; charset=us-ascii 
Content-Transfer-Encoding: 7bit 
Content-Disposition: inline 

This content should be placed after table 

------=_Part_0_2350964.1496689307498 
Content-Type: application/octet-stream; 
    name="report.xls" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="report.xls" 

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA 
<skipped> 
------=_Part_0_2350964.1496689307498-- 

结果我只看到“之前的内容表”行,两个附件,如“ATT01.html”和“ATT02.txt”和我原来的附件“的报告。 XLS”。

我在某个论坛上发现了一个相关主题,说这个问题自Outlook 2010左右开始不应该出现,但我可以在桌面应用程序和网络应用程序中看到最新版本。 将所有内容放入html部分的解决方法解决方案需要更多工作,因为文本部分是由其他组件生成的。

回答

0

您正在对部件进行错误分组。它必须是

1. Outer message, multipart/mixed 
    2. multipart/related 
    2.a text/plain 
    2.b text/html 
    3. attachment. 
相关问题