使用纯.NET框架提取MIME主体

时间:2010-11-19 18:18:32

标签: .net mime

由于.NET Framework已经具有System.Net.Mime命名空间并且能够解析Http头,我希望还应该有“标准”或“隐藏”方法从消息中提取mime体(base64编码)(传递为字符串或流)。

在哪儿?

P.S。现在我使用正则表达式,但这不是那么有趣,最终不那么耐用...... P.P.S .Net Framework 3.5

2 个答案:

答案 0 :(得分:0)

在使用反射器进行了几个小时的探索之后,我没有找到任何有趣的.NET框架。

  1. System.Net.Mime类仅用于反序列化数据(对于只能发送电子邮件的.NET SMTP客户端)。
  2. 2我发现HTTP头解析器也不是很有用,看看
    WebHeaderCollection的类, 内部DataParseStatus ParseHeaders(byte [] buffer,int size,ref int unparsed,ref int totalResponseHeadersLength,int maximumResponseHeadersLength,ref WebParseError parseError)方法。它需要知道在哪里停止。这意味着预先制作。

答案 1 :(得分:0)

我建议您查看MimeKit。它是一个完全托管(C#)的MIME解析器,非常快速,非常强大且符合标准。

有一个名为MIMER的完全正则表达式实现,但解析消息所需的时间比MimeKit的解析器长70倍。

没有用C#编写的MIME解析器比MimeKit更强大或更快 - 哎呀,可能没有任何C / C ++解析器比MimeKit快得多(我已经对MimeKit进行了基准测试)最好的C解析器,它与它们的性能相当)。