我们使用LumiSoft.NET MIME library来创建EML文件。这些EML文件是由数据库值构造的。电子邮件的正文可以是纯文本、RTF或HTML。我们知道正文是HTML,所以当这种情况发生时,我们的EML文件的content-type被设置为下面这一行:
Content-Type: text/html; charset="utf-8"当正文是纯文本或RTF (因为我们不知道它是哪一个)时,我们将content-type设置为RTF,如下所示
Content-Type: text/rtf; charset="utf-8".HTML EML文件在不同的产品中显示得很好...但是RTF EML文件似乎被不同的产品解释得不同。这工作了几年,我们得到的EML文件在Outlook Express上进行了QA,它们正常地出现了。但最近,我们有一些客户报告这些电子邮件以邮件正文作为附件显示的问题。在Outlook2007 SP2和Outlook2010中,电子邮件正文确实显示为附加到电子邮件的TXT文件...而且电子邮件本身的正文是空的。此外,我们使用一个名为dtSearch的产品,当它将这些EML文件转换为超文本标记语言时,它会执行类似的转换,其中EML文件的正文显示在名为Attachment0.DAT的附件的内容中。所以所有奇怪的行为...这是它实际运行的一些屏幕截图。
Outlook Express:

Outlook 2010:

Here's the actual EML file.
我们使用RTF作为内容类型是不是做错了什么?它似乎在过去工作过,并与Outlook Express一起工作。有人建议使用Redemption而不是EML格式来切换到MSG格式来缓解这个问题,但我认为这对Outlook或MAPI库的用户机器提出了一个先决条件。但是,如果不同的产品对EML格式的解析不一样,那么也许MSG格式是可行的。
发布于 2011-07-28 03:35:27
电子邮件的内容看起来不像有效的rtf (没有魔术数字"{\rtf")。
它是带有带引号的可打印传输编码的纯文本。
您应该使用content-type: text/plain。
https://stackoverflow.com/questions/6694178
复制相似问题