我想从服务器获取邮件,但我也想控制何时删除它们。
有没有办法做到这一点?
我知道此设置在邮件客户端中非常常见,但似乎 POPv3 规范和/或服务器实现不太支持此选项。
(我正在使用 python,但我可以使用其他语言/库,Python 的 poplib 似乎非常简单)
大多数 POP3 客户端可能会自动删除成功检索的消息,但这是客户端本身的功能,而不是协议。POPv3 在会话的事务阶段支持四种基本操作:
LIST
)RETR
)DELE
)RSET
)在客户端使用该QUIT
命令结束会话后,任何仍标记为删除的消息都会在更新阶段被删除。但是请注意,该RETR
命令(基于我对RFC1939的阅读不会标记要删除的消息;这需要使用该DELE
命令明确完成。
但是请注意,特定的 POP3服务器可能具有删除检索到的消息的策略,无论客户端是否请求删除它们。这样的服务器是否提供超出协议范围的绕过操作。(关于这一点的讨论在 RFC 的第 8 节中提到,但不是协议本身的一部分。)
POP3 设计为在成功获取邮件后从服务器下载并删除邮件。如果您不想这样,请改用 IMAP 协议。该协议支持您在闲暇时删除邮件,而不是在邮件同步到您的机器时。