2

我想从服务器获取邮件,但我也想控制何时删除它们。

有没有办法做到这一点?

我知道此设置在邮件客户端中非常常见,但似乎 POPv3 规范和/或服务器实现不太支持此选项。

(我正在使用 python,但我可以使用其他语言/库,Python 的 poplib 似乎非常简单)

4

2 回答 2

4

大多数 POP3 客户端可能会自动删除成功检索的消息,但这是客户端本身的功能,而不是协议。POPv3 在会话的事务阶段支持四种基本操作:

  1. 列出邮箱中所有可用的消息。( LIST)
  2. 检索特定消息 ( RETR)
  3. 标记要删除的消息 ( DELE)
  4. 清除所有删除标志 ( RSET)

在客户端使用该QUIT命令结束会话后,任何仍标记为删除的消息都会在更新阶段被删除。但是请注意,该RETR命令(基于我对RFC1939的阅读不会标记删除的消息;这需要使用该DELE命令明确完成。

但是请注意,特定的 POP3服务器可能具有删除检索到的消息的策略,无论客户端是否请求删除它们。这样的服务器是否提供超出协议范围的绕过操作。(关于这一点的讨论在 RFC 的第 8 节中提到,但不是协议本身的一部分。)

于 2018-11-09T19:16:10.340 回答
2

POP3 设计为在成功获取邮件后从服务器下载并删除邮件。如果您不想这样,请改用 IMAP 协议。该协议支持您在闲暇时删除邮件,而不是在邮件同步到您的机器时。

于 2018-11-09T18:37:39.230 回答