Pop3Client错误:" 7位不支持编码名称"

时间:2015-01-23 16:51:28

标签: c# email pop3

我有一个代码可以打开我的邮箱。这是代码:

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行

如何解决?

1 个答案:

答案 0 :(得分:2)

由于MailKitNuGet package here)具有与OpenPOP类似的API,您可能会尝试切换到MailKit,因为它没有此问题(它在解析消息时正确处理错误的字符编码名称)

如果您不想更改为MailKit,则需要编辑OpenPOP的源代码并修复OpenPop.Mime.Header.HeaderFieldParser.ParseCharsetToEncoding()以正确处理错误的字符集名称。