Удалить сообщение из POP3 без "выхода"

Есть ли способ принудительно удалить сообщение с POP3-сервера, не отправляя "quit"?

Так, например, сейчас у меня есть:

>> dele 1
<< +OK Deleted.
>> quit
<< +OK Bye-bye.

Я хочу что-то, где я могу сбросить удаленные сообщения перед выходом,

>> dele 1
<< +OK Deleted.
>> flush
<< +OK You are awesome.
(many more ops)
>> quit
<< +OK Bye-bye.

Причина в том, что у меня есть скрипт, который читает и обрабатывает электронную почту, и если произойдет фатальное событие, скажем, в сообщении № 10, тогда скрипт остановится и команда 'quit' никогда не будет отправлена. Затем при следующем запуске сценариев сообщения 1–9 повторно обрабатываются, поскольку они не были удалены.

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

1 ответ

afaik это невозможно с rfc-совместимым pop3-сервером. в соответствии с RFC 1939 сервер может начать обновление почтового ящика (удаление сообщений) только тогда, когда клиент отправляет команду выхода.

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

Другие вопросы по тегам