有没有办法强制删除 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。