Назад | Перейти на главную страницу

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

Есть ли способ принудительно удалить сообщение с сервера POP3 без отправки команды «выйти»?

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

>> 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 произойдет фатальный отказ, сценарий останавливается, и команда «выйти» никогда не отправляется. Затем при следующем запуске сценариев сообщения 1–9 повторно обрабатываются, поскольку они не были удалены.

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

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

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