none
c# OpenPop - не загружает письмо RRS feed

  • Вопрос

  • Добрый день.

    Не удается загрузить одно из десятков писем - ошибка:

    Входные данные не являются действительной строкой Base-64, поскольку содержат символ в кодировке, отличной от Base 64, больше двух символов заполнения или непробельный символ наряду с символами заполнения.

    Причем это письмо нормально открывается в Web клиенте и в outlook.
    Вот код:
     using (Pop3Client pop3Client = new Pop3Client())
                {
                   
                    try
                    {
                        if (pop3Client.Connected)
                            pop3Client.Disconnect();
                        pop3Client.Connect(ParamClass.mail_Pop3, 995, true);
                        pop3Client.Authenticate(ParamClass.mail_User, ParamClass.mail_Password);
                    }
                    catch (Exception ex) { WriteLog("Ошибка при подключении к ящику: " + ex.Message); return false; }
                    int count = pop3Client.GetMessageCount();
                    if (count > 0)
                    {
                        for (int i = count; i >= 1; i -= 1)
                        {
                            Message message;
                            try
                            {
                                message = pop3Client.GetMessage(i);
                            }catch {}
    }}}}


    6 февраля 2013 г. 17:07

Ответы

  • Привет

    Попробуйте "руками" в консольном проекте с помощью Base64 энкордера и декодера найти строку из ваших заголовков, которая вызывает данную ошибку.

    В общем виде текст кодируется так:

    =?<code_page>?<encode_method>?<encode_text>?=

    где code_page - кодировка, в вашем случае utf-8

    encode_method - метод кодирования B - Base64, Q - QuotedPrint

    и encode_text - сам закодированный текст, который вам нужно как раз проверить


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 12 февраля 2013 г. 10:10
    7 февраля 2013 г. 11:52

Все ответы

  • Вот заголовки письма:

    Envelope-to: price-bez-otveta@xxx.ru
    Delivery-date: Wed, 06 Feb 2013 02:17:39 +0400
    Received: from ht-mail.yyy.ru ([95.80.66.78]:45065)
    by mx2.beget.ru with esmtp (Exim 4.76)
    (envelope-from <no-reply@yyy.ru>)
    id 1U2qpY-0006y8-2m
    for price-bez-otveta@xxx.ru; Wed, 06 Feb 2013 02:17:39 +0400
    Received: from profit-main (unknown [192.168.3.2])
    by ht-mail.yyy.ru (Postfix) with ESMTPA id 07DA08BE97
    for <price-bez-otveta@xxx.ru>; Wed, 6 Feb 2013 02:07:55 +0400 (MSK)
    Date: Wed, 6 Feb 2013 02:06:54 +0400
    From: <no-reply@yyy.ru>
    Subject: =?utf-8?B?0J/RgNCw0LnRgS3Qu9C40YHRgiDQn9GA0L7RhNC40YIt0JvQuNCz0LA=?=
    To: <price-bez-otveta@xxx.ru>
    Message-Id: <670af11b-6d11-4688-917f-f34b6ae97d84@xxx.ru>
    Mime-Version: 1.0
    X-Priority: 3 (Normal)
    X-Mailer: 1C:Enterprise 8.2
    Content-Type: application/octet-stream;
    name="=?utf-8?B?0JDQstGC0L7Qt9Cw0L/Rh9Cw0YHRgtC4ICjQmNC90YLQtdGA0L3QtdGC?=
    =?utf-8?B?LdC80LDQs9Cw0LfQuNC9KSAo0L/RgNCw0LnRgSDQvtGCIDA2LjAyLjIwMTMpLng=?=
    =?utf-8?B?bHM=?="
    Content-Transfer-Encoding: base64
    Content-Dis;
    filename="=?utf-8?B?0JDQstGC0L7Qt9Cw0L/Rh9Cw0YHRgtC4ICjQmNC90YLQtdGA0L0=?=
    =?utf-8?B?0LXRgi3QvNCw0LPQsNC30LjQvSkgKNC/0YDQsNC50YEg0L7RgiAwNi4wMi4yMDE=?=
    =?utf-8?B?MykueGxz?="\
    6 февраля 2013 г. 17:24
  • Привет

    Попробуйте "руками" в консольном проекте с помощью Base64 энкордера и декодера найти строку из ваших заголовков, которая вызывает данную ошибку.

    В общем виде текст кодируется так:

    =?<code_page>?<encode_method>?<encode_text>?=

    где code_page - кодировка, в вашем случае utf-8

    encode_method - метод кодирования B - Base64, Q - QuotedPrint

    и encode_text - сам закодированный текст, который вам нужно как раз проверить


    Для связи [mail]

    • Помечено в качестве ответа Abolmasov Dmitry 12 февраля 2013 г. 10:10
    7 февраля 2013 г. 11:52