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