ste*_* he 4 c# email encoding pop3
我使用POP3接收电子邮件.但编码错误,如电子邮件的主题"主题"转向"涓婚".中文错误,强文字时文字的内容是英文,没有错误.谁能告诉我,我该怎么做呢?代码如下:
POP3 pop = new POP3();
pop.Connect("userName", "password", "pop.126.com", 110);//smtp.126.com
pop.DownloadMessages();
for (int i = 1; i < pop.Messages.Count; i++)
{
Email email = new Email();
Message msg = pop.Messages[i];
email.From = msg.From;
email.FromName = msg.FromName;
email.Body = msg.HTMLBody;
email.Title = msg.Subject;
}
Run Code Online (Sandbox Code Playgroud)
jst*_*ast 14
我不确定你使用的是什么POP3库,但它显然已被破坏,除了切换到另一个POP3库(例如我的MailKit库,这是唯一的库)之外,您无法"修复"代码以使其工作.在所有情况下正确处理字符集(大多数将处理Latin1确定,但完全失败的CJK字符集).
大多数客户端因为Latin1(ISO-8859-1)之外的任何内容而中断的原因是大多数电子邮件库都具有仅适用于字符串的解析器.为了将消息数据从字节转换为字符串,他们需要选择一个System.Text.Encoding(并且大多数选择ISO-8859-1).他们假设电子邮件遵循各种RFC中规定的将电子邮件标头限制为US-ASCII的规则,但客户忽略这些规则是很常见的.
与其他解析器不同,MailKit的电子邮件解析器解析字节流,因此在开始解析消息之前不需要进行字符集转换.这允许解析器正确处理标题和正文中的混合字符集.
| 归档时间: |
|
| 查看次数: |
842 次 |
| 最近记录: |