проблема чтения строк через IMAP - PullRequest
0 голосов
/ 11 февраля 2011

Я работаю над IMAP, поэтому просто читаю тело (body [header.fields (DATE FROM SUBJECT)]) Я передаю эту команду.

Но проблема в том, что когда-то моя строка возвращаетдополнительный материал за исключением моей оригинальной строки.и иногда я получал ограниченную часть струны, то есть половину тела.поэтому всякий раз, когда я передаю вторую команду, она принимает в качестве первой команды и возвращает результат в качестве первой команды, ожидающей результата.;

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

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

или что-нибудь еще, чтобы сделать мое кодирование .....

Спасибо ..

1 Ответ

1 голос
/ 12 февраля 2011

Помогла бы отправка примера ответа с сервера IMAP, содержащего «дополнительные данные».

Проблема, с которой вы, скорее всего, сталкиваетесь, связана с ответами сервера без тегов.

Вот что RFC3501 говорит:

Ответы о состоянии могут быть помечены или нет. Отмеченные ответы о состоянии указывают результат выполнения (состояние ОК, НЕТ или ПЛОХО) клиентской команды и имеют тег, соответствующий команде:

C: a002 NOOP
S: a002 OK NOOP completed

Некоторые ответы о состоянии и все данные сервера не имеют тегов. неотмеченный ответ обозначается токеном "*" вместо тега.

C: a047 NOOP
S: * 22 EXPUNGE
S: * 23 EXISTS
S: * 3 RECENT
S: * 14 FETCH (FLAGS (\Seen \Deleted))
S: a047 OK NOOP completed

Так что вам нужно различать эти 2 типа ответов.

Пожалуйста, помните, что проверки того, что каждая полученная строка начинается с символа '*', недостаточно, поскольку в вашем сообщении электронной почты также могут быть строки, начинающиеся со знака звезды:

C:    a004 fetch 12 body[header]
S:    * 12 FETCH (RFC822 {342}
S:    Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
S:    From: Terry Gray <gray@cac.washington.edu>
S:    Subject: IMAP4rev1 WG mtg summary and minutes
S:    MIME-Version: 1.0
S:    
S:    * This is email body containing start char
S:    )
S:    a004 OK FETCH completed

{342} - точное количество байтов, которые вы должны прочитать.

Суть в том, чтобы не изобретать велосипед, использовать существующую библиотеку.

Вы можете проверить мой компонент IMAP (не бесплатно).

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