Получать письма через POP3, но хранить их на сервере - PullRequest
0 голосов
/ 09 ноября 2018

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

Есть ли способ сделать это?

Я знаю, что этот параметр очень распространен в почтовых клиентах, но, похоже, этот параметр плохо поддерживается спецификациями POPv3 и / или реализациями серверов.

(я использую python, но я в порядке с другими языками / библиотеками, poplib Python кажется очень упрощенным)

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Большинство клиентов POP3 могут автоматически удалять успешно извлеченные сообщения, но это особенность самого клиента, а не протокола.POPv3 поддерживает четыре основных операции на этапе транзакции сеанса:

  1. Вывод списка всех доступных сообщений в почтовом ящике.(LIST)
  2. Получение определенного сообщения (RETR)
  3. Пометка сообщения для удаления (DELE)
  4. Очистка всех флагов удаления (RSET)

После того, как клиент завершит сеанс с помощью команды QUIT, все сообщения, помеченные для удаления, будут удалены на этапе обновления.Однако обратите внимание, что команда RETR (основанная на моем чтении RFC1939 делает не пометкой сообщения для удаления; это необходимо сделать явно с помощью команды DELE.

Обратите внимание, однако, что конкретный сервер POP3 может иметь политику удаления полученных сообщений независимо от того, запросил ли клиент их удаление.обеспечивает операцию обхода, выходящую за рамки протокола (обсуждение этого вопроса упоминается в разделе 8 RFC, но не является частью самого протокола).

0 голосов
/ 09 ноября 2018

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

...