我有一个代码可以打开我的邮箱。这是代码:
private Pop3Client GetPop3Client()
{
Pop3Client popClient = new Pop3Client();
popClient.Connect("smtp.xxxxxxxxx.xxxx.xx", 110, false);
popClient.Authenticate("username", "passowrd");
return popClient;
}
所以,在那一行:
Message message = popClient.GetMessage(1);
发生此错误:
'7bit'不是受支持的编码名称。参数名称:名称在 System.Globalization.EncodingTable.internalGetCodePageFromName(字符串 name)在System.Globalization.EncodingTable.GetCodePageFromName(String 姓名)at OpenPop.Mime.Header.HeaderFieldParser.ParseCharsetToEncoding(字符串 OpenPop.Mime.MessagePart.ParseBodyEncoding(String。)中的characterSet 在OpenPop.Mime.MessagePart..ctor(Byte [] rawBody的characterSet), MessageHeader标题)at OpenPop.Mime.MessagePart.ParseMultiPartBody(Byte [] rawBody)at at OpenPop.Mime.MessagePart.ParseBody(Byte [] rawBody)at OpenPop.Mime.MessagePart..ctor(Byte [] rawBody,MessageHeader标头) 在OpenPop.Mime.Message..ctor(Byte [] rawMessageContent,Boolean parseBody)在OpenPop.Pop3.Pop3Client.GetMessage(Int32 messageNumber) 在DocumentCenter.Repository.ProcessMessage.ReadAllInMailBox()中 C:\ dsn \ net \ project \ project.Repository \ ProcessMessage.cs:第414行
如何解决?
答案 0 :(得分:2)
由于MailKit(NuGet package here)具有与OpenPOP类似的API,您可能会尝试切换到MailKit,因为它没有此问题(它在解析消息时正确处理错误的字符编码名称)
如果您不想更改为MailKit,则需要编辑OpenPOP的源代码并修复OpenPop.Mime.Header.HeaderFieldParser.ParseCharsetToEncoding()以正确处理错误的字符集名称。