我想知道是否可以解析 dot net 中的 .eml 和 .msg 文件(最好来自内存流),以便我可以在 ASP.Net 页面上使用它们。
EML(MIME 消息)
在大多数情况下,EML 是带有邮件消息的 MIME 编码文件。 EML 文件的常见来源包括从 Outlook Express 或 Thunderbird 保存的邮件、从 IMAP 或 POP3 服务器下载的邮件。
正确加载 EML 文件并不像看起来那么容易。您可以在几天内编写一个适用于 95% 情况的实现。剩下的 5% 至少需要几个月的时间;-)。我知道,因为我参与了开发。
考虑以下困难:
- 统一码电子邮件
- 从右到左的语言
- 纠正由流行邮件客户端和服务器中众所周知的错误引起的格式错误的 EML 文件
- 处理 S/MIME(加密和签名的电子邮件)
- 正确处理附件编码的几种方法
- 处理嵌入到 HTML 电子邮件中的内联图像和样式表
- 确保它正确解析MIME 折磨信息来自 Mike Crispin(Mime 和 IMAP RFC 的合著者)
- 确保格式错误的消息不会导致缓冲区溢出或其他应用程序崩溃
- 处理分层消息(带有附加消息的消息)
- 确保它正确处理非常大的电子邮件
这种解析器的成熟需要数年时间以及对其用户的持续反馈。目前 .NET Framework 中不包含这样的解析器。在它发生变化之前,我建议从成熟的供应商那里获取第三方 MIME 解析器。
以下代码使用我们的Rebex 安全邮件组件,但我确信类似的任务也可以使用其他供应商的组件轻松复制。
该代码基于邮件留言教程.
// create an instance of MailMessage
MailMessage message = new MailMessage();
// load the message from a local disk file
message.Load("c:\\message.eml");
// load the message from MemoryStream
MemoryStream stream = new MemoryStream();
// TODO: fill the stream, seek to the beginning
message.Load(stream);
MSG(Outlook 消息)
MSG 格式是 Microsoft 在 Microsoft Outlook 中引入的一种电子邮件格式。有Microsoft 网站上的 MSG 格式规范。您可能还想尝试第三方组件。我知道有一个IndependentSoft 的 MSG 格式组件但没有亲自尝试过。还有我们的Rebex 安全邮件1.0.4060.0 或更高版本也支持 MSG 格式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)