通过POP3提取邮件,但将其保留在服务器上

时间:2018-11-09 18:34:50

标签: python pop3 poplib

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

有没有办法做到这一点?

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

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

2 个答案:

答案 0 :(得分:2)

根据设计,POP3在成功提取邮件后会从服务器下载并删除邮件。如果您不想这样做,请改用IMAP协议。该协议具有支持,使您可以在闲暇时删除邮件,而不是将其同步到计算机上。

答案 1 :(得分:2)

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

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

客户端使用QUIT命令结束会话后,所有仍标记为删除的消息将在更新阶段被删除。不过请注意,RETR命令(基于我对RFC1939的阅读并没有 not 将消息标记为删除;这需要使用{{1}明确地完成}命令。

但是请注意,特定的POP3服务器 可能具有删除邮件的策略,无论客户端是否要求将其删除。这样的服务器是否提供绕过该协议范围之外的操作。 (在RFC的第8节中提到了关于这一点的讨论,但这不是协议本身的一部分。)