阅读EML从Windows SMTP服务文件。任何理由不使用的StreamReader?
-
23-09-2019 - |
题
我要被读取和解析EML文件下降了微软SMTP服务。我是一个新手使用各种流类。它分析这些文件,我已经看到了实现使用上System.IO.Stream的变化按字节读取字节。然而,好像这些文件不应该是什么,但文本。那岂不是更好地使用一个StreamReader?如果是的话,是没有任何理由的其他使用比默认(UTF-8)编码?
解决方案
他们应该是文字,但他们并不总是这样。
电子邮件可以是8位或二进制编码。
一个StreamReader将努力为电子邮件的约99%要解析。
但是,坦白地说,这不是最大的问题。
在问题将是实际解析和提取所述MIME内容,根据为Mime规则,使用正确的字符集沿着。
虽然UTF-8是一个非常大的字符集,它可以用来解析大多数电子邮件,您仍然可以通过尝试与该字符集解析电子邮件获取腐败的内容。
要做到这一点,最好的方法,是实际读取的电子邮件以二进制形式,提取字符集,然后切换到使用标头中找到指定字符阅读电子邮件。
不隶属于 StackOverflow