是否有.NET Framework方法来解析电子邮件(MIME)?

.NET Framework(3.5+)中是否有一类或一组函数来解析原始电子邮件(MIME文档)?

我不是在寻找任何花哨的东西或单独的库,它需要内置。 我将在一些unit testing中使用它,并且只需要获取感兴趣的主标题(To,From,Subject)以及正文(在这种情况下将始终是文本,因此没有MIME树或边界)。 我以前写过几个MIME解析器,如果没有任何可用的东西,我会把正则表达式中的东西放在一起。 能够做到这样的事情会很棒:

MailMessage msg = MailMessage.Parse(text); 

思考?

我知道你说没有外部库,但我在codeplex上发布了一个库:

https://bitbucket.org/otac0n/mailutilities

 MimeMessage msg = new MimeMessage(/* string, stream, or Byte[] */); 

它已经过40,000多条真实邮件消息的测试。

我对命名空间的选择不太满意,但是……我懒得改变它。


PS:

在内部,我的库使用这些正则表达式作为解析器:

 internal static string FullMessageMatch = @"\A(?
(?:[^\r\n]+\r\n)*)(?\r\n)(?.*)\z"; internal static string HeadersMatch = @"^(?[-A-Za-z0-9]+)(?:[ \t]*)(?([^\r\n]|\r\n[ \t]+)*)(?\r\n)"; internal static string HeaderSeperator = "\r\n"; internal static string KeyValueSeparator = @"\A:[ \t]*\z";

免费,开源(MIT许可)和快速MimeKit给人留下了深刻的印象

  • Nuget: https ://www.nuget.org/packages/MimeKit
  • 没有加密内容的“Lite”版本: https : //www.nuget.org/packages/MimeKitLite

不,没有办法做到这一点。 Microsoft尚未创建文本到消息转换器,因为它们尚未创建POP3或IMAP库。 不幸的。

我推荐Lumisoft的IMAP和MIME解析器库。 我以前用过的,很容易使用。 你可以从这里下载它: http : //www.lumisoft.ee/lsWWW/Download/Downloads/Net/这个lib有许多其他的协议,比如ftp,pop3等,我确信sc是可用的。 尝试google for it,也可以在codeproject.com上找到它

查看我们的Rebex Secure Mail ,其中包含一个(IMHO)体面的S / MIME解析器。 function包括:

  • 高级MailMessage API (在常见的电子邮件客户端中看到的消息)
  • 低级MimeMessage API (访问S / MIME内部树)
  • 支持MIME,S / MIME
  • 支持Microsoft Outlook生成的TNEF(winmail.dat)
  • 邮件加密
  • 消息签名
  • Unicode和国际化支持
  • 链接资源列表 (用于内联CSS和HTML邮件中的图片)
  • IEnumerable 支持(LINQ需要)
  • 支持直到今天发布的所有.NET和.NET紧凑框架

解析器是Rebex Secure Mail的一部分,您可以在此处下载 。

查看Mail.dll .NET邮件组件 ,它内置了MIME支持,unicode和多国电子邮件支持:

 MailBuilder builder = new MailBuilder(); // Here you get the message class with attachments, visuals IMail message = builder.CreateFromEml(File.ReadAllText("test.eml")); // you can access entire MIME document: MimeDocument document = message.Document; 

请注意,Mail.dll是我创建的商业产品。

您可以在此处下载: https : //www.limilabs.com/mail 。