Позволяет ли протокол POP3 указать подмножество электронных писем для загрузки? - PullRequest
1 голос
/ 28 марта 2009

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

Если я скачаю все сообщения сегодня и восстановлю соединение завтра, то поддерживает ли протокол возможность загрузки сообщений только за последние 24 часа или с определенного последовательного идентификатора? Или мне снова придется загружать все сообщения?

Мне известна функция уникальной идентификации IDentification Listing, но согласно http://www.faqs.org/rfcs/rfc1939.html она не поддерживается в исходной спецификации. Поддерживает ли большинство почтовых серверов эту функцию?

Да, мой клиент также поддерживает IMAP, но этот вопрос специально для POP-серверов.

Ответы [ 4 ]

3 голосов
/ 28 марта 2009

Рассматривали ли вы использование IMAP?

1 голос
/ 28 марта 2009

Я сделал это.

Вам придется перечитать все заголовки, но вы можете решить, какие сообщения загрузить.

Я не помню ничего в заголовке, которое дало бы вам надежную временную метку. Я не верю, что ваше решение возможно без учета того, что вы уже видели.

(В моем случае мне было все равно - я просто искал сообщения с определенными функциями идентификации в заголовке - эти сообщения были загружены, обработаны и уничтожены, все остальное осталось нетронутым.)

Мне также интересно, не понимаете ли вы протокол. То, что вы загружаете сообщение, не означает, что оно удалено с сервера. Он удаляется с сервера только в том случае, если вы даете явную команду на удаление сообщения. (И когда сообщение содержит так много вложений, что время ожидания системы до того, как вы правильно выйдете из системы, и, таким образом, ваша команда kill будет отброшена, вы забьетесь на стену!) (Это был недосмотр в проекте. Первоначальная логика была прикрепить один файл размером более 100 тыс., или как можно больше, чье общее количество не превышало 100 тыс. Еще одна задача сработала и сгенерировала тысячи файлов размером около 100 байт каждый. Хотя это была совершенно законная, хотя и экстремальная, электронная почта, ничто не могло ее убить !)

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

0 голосов
/ 28 марта 2009

Sort-оф. Вы можете загружать отдельные сообщения, но не можете сохранять состояние на удаленном сервере.

См. Команду RETR на http://www.faqs.org/rfcs/rfc1939.html.

0 голосов
/ 28 марта 2009

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

В протоколе, о котором я знаю, нет ничего, что позволяло бы это.

...