无需“退出”即可从 POP3 中删除邮件

无需“退出”即可从 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,因为它们没有被删除。

(我们有很多错误处理来确保致命错误不会发生,并且我们有针对堆栈上层重复消息的保护措施。但最好确保在应该删除消息时删除它们。)

答案1

据我所知,使用符合 rfc 的 pop3 服务器是不可能做到这一点的。根据 RFC 1939,只有当客户端发送退出命令时,服务器才能开始更新邮箱(删除邮件)。

也许您可以修改脚本,使其以较小的批次运行,并在每批次之后重新连接。或者改用 IMAP。

相关内容