C#: «двоичный» не поддерживается имя кодировки - PullRequest
0 голосов
/ 23 января 2020

Я использую приведенный ниже фрагмент кода довольно долго, чтобы читать письма и вставлять их в базу данных. В последнее время я сталкиваюсь с проблемой, которая происходит в 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() 

Спасибо!

...