возвращение извлечения imap {6} {15} - PullRequest
0 голосов
/ 20 марта 2012

я работаю на клиенте .net imap

когда я выбираю конверты, я получаю такие строки, как это

  • 2 FETCH (FLAGS (\ SEEN) INTERNALDATE "13-Nov-2011 02:38:07 -0700 "RFC822.SIZE 10993 UID 62 ENVELOPE (" 13 ноября 2011 12:37:32 +0200 "" Ваш заказ "(({15}

  • 1 FETCH (\ SEEN) INTERNALDATE "11-Nov-2009 13:54:35 -0700" RFC822.SIZE 38501 UID 1 ENVELOPE ("Среда, 11 ноября 2009 17:50:29 -0400" "Newegg.com - Подтверждение заказа "(({{6}

    Newegg NIL" info "" newegg.com ")) (({6}

    Newegg NIL" info "" newegg.com ")) NIL ((NIL NIL "office" "mysite.com")) NIL NIL NIL ""))

остальная часть конверта находится на следующей строке

иногда он ломается на {15}, как первый

иногда на {6}

возможно, есть и другие, пока у меня были эти

, я перепробовал многоразличные кодировки в streamwriter и / или streamreader (ascii, utf7, utf8)

так, что означают эти числа? или как ijправильно прочитайте строку до конца

спасибо большое!

1 Ответ

1 голос
/ 22 марта 2012

Вам нужно прочитать протокол IMAP, если вы используете собственный клиент, а не используете существующую библиотеку.Значение чисел в фигурных скобках хорошо объяснено в RFC .

Это буквальное значение.За номером в скобках всегда следует конец строки (CRLF), а затем число необработанных байтов, которые формируют значение строки.Число в скобках - это количество необработанных байтов, которые следуют.Вам нужно прочитать столько же необработанных байтов после CRLF (и быть осторожным с кодированием и преобразованием конца строки: если вы декодируете текст или переводите окончания строки, то вы можете прочитать неправильное количество необработанных байтов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...