Я использую приведенный ниже фрагмент кода довольно долго, чтобы читать письма и вставлять их в базу данных. В последнее время я сталкиваюсь с проблемой, которая происходит в client.GetMessage (i). Проблема заключается в том, что «двоичное» не является поддерживаемым именем кодировки. Информацию об определении пользовательской кодировки см. В документации по методу Encoding.RegisterProvider. «
C#
try
{
client.Connect(_pop3Server, 110, false);
client.Authenticate(_userName, _password);
int messageCount = client.GetMessageCount();
OpenPop.Mime.Decode.EncodingFinder.AddMapping("ISO8859-15", Encoding.GetEncoding("ISO-8859-15"));
//System.Text.EncodingProvider provider = System.Text.CodePagesEncodingProvider.Instance;
//Encoding.RegisterProvider(provider);
for (int i = messageCount; i > 0; i--)
{
MessageHeader header = client.GetMessageHeaders(i);
Message msg = client.GetMessage(i);
//
//
//
}
}
catch (Exception ex)
{
throw ex;
}
Previoulsy, я использовал эту строку для кодирования почты. OpenPop.Mime.Decode.EncodingFinder.AddMapping("ISO8859-15", Encoding.GetEncoding("ISO-8859-15"));
Теперь, после появления этой ошибки. Я пытался таким образом также кодировать почту. Я сослался на эту ссылку System.Text.EncodingProvider provider = System.Text.CodePagesEncodingProvider.Instance;
Encoding.RegisterProvider(provider);
Тем не менее, моя проблема не решается, и без использования кодирования также возникает та же проблема. Не могли бы вы помочь в этом.
'binary' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name System.ArgumentException: 'binary' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.
Parameter name: name
at System.Globalization.EncodingTable.internalGetCodePageFromName(String name)
at System.Globalization.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
at OpenPop.Mime.Decode.EncodingFinder.FindEncoding(String characterSet)
at OpenPop.Mime.MessagePart.ParseBodyEncoding(String characterSet)
at OpenPop.Mime.MessagePart..ctor(Byte[] rawBody, MessageHeader headers)
at OpenPop.Mime.MessagePart.ParseMultiPartBody(Byte[] rawBody)
at OpenPop.Pop3.Pop3Client.GetMessage(Int32 messageNumber)
at Retriever.EmailRetreiverTask.CheckEmail()
at System.Globalization.EncodingTable.internalGetCodePageFromName(String name)
at System.Globalization.EncodingTable.GetCodePageFromName(String name)
at System.Text.Encoding.GetEncoding(String name)
at OpenPop.Mime.Decode.EncodingFinder.FindEncoding(String characterSet)
at OpenPop.Mime.MessagePart.ParseBodyEncoding(String characterSet)
at OpenPop.Mime.MessagePart..ctor(Byte[] rawBody, MessageHeader headers)
at OpenPop.Mime.MessagePart.ParseMultiPartBody(Byte[] rawBody)
at OpenPop.Pop3.Pop3Client.GetMessage(Int32 messageNumber)
at Retriever.EmailRetreiverTask.CheckEmail()
Спасибо!