通过 POP3 获取邮件,但将它们保存在服务器上
Fetch mails via POP3, but keep them on the server
我想从服务器获取邮件,但我也想控制何时删除它们。
有办法吗?
我知道此设置在邮件客户端中很常见,但 POPv3 规范 and/or 服务器实现似乎不支持此选项。
(我用的是python,但是我用其他的languages/libraries没问题,Python的poplib看起来很简单)
POP3 设计为在成功获取邮件后从服务器下载并删除邮件。如果您不想这样,请改用 IMAP 协议。该协议支持允许您在闲暇时删除邮件,而不是在邮件同步到您的机器时删除。
大多数 POP3 客户端可能会自动删除成功检索到的邮件,但这是客户端本身的一个功能,而不是协议。 POPv3 在会话的事务阶段支持四种基本操作:
- 列出邮箱中的所有可用邮件。 (
LIST
)
- 正在检索特定消息(
RETR
)
- 标记要删除的消息(
DELE
)
- 正在清除所有删除标志(
RSET
)
客户端使用 QUIT
命令结束会话后,所有仍标记为删除的消息将在更新阶段删除。但是请注意,RETR
命令(根据我对 RFC1939 的阅读 而不是 标记要删除的消息;这需要使用 DELE
命令。
但是请注意,特定的 POP3 服务器 可能具有删除检索到的邮件的策略,无论客户端是否请求它们被删除。这样的服务器是否提供了超出协议范围的绕过操作。 (关于这一点的讨论在 RFC 的第 8 节中提到,但不是协议本身的一部分。)
我想从服务器获取邮件,但我也想控制何时删除它们。
有办法吗?
我知道此设置在邮件客户端中很常见,但 POPv3 规范 and/or 服务器实现似乎不支持此选项。
(我用的是python,但是我用其他的languages/libraries没问题,Python的poplib看起来很简单)
POP3 设计为在成功获取邮件后从服务器下载并删除邮件。如果您不想这样,请改用 IMAP 协议。该协议支持允许您在闲暇时删除邮件,而不是在邮件同步到您的机器时删除。
大多数 POP3 客户端可能会自动删除成功检索到的邮件,但这是客户端本身的一个功能,而不是协议。 POPv3 在会话的事务阶段支持四种基本操作:
- 列出邮箱中的所有可用邮件。 (
LIST
) - 正在检索特定消息(
RETR
) - 标记要删除的消息(
DELE
) - 正在清除所有删除标志(
RSET
)
客户端使用 QUIT
命令结束会话后,所有仍标记为删除的消息将在更新阶段删除。但是请注意,RETR
命令(根据我对 RFC1939 的阅读 而不是 标记要删除的消息;这需要使用 DELE
命令。
但是请注意,特定的 POP3 服务器 可能具有删除检索到的邮件的策略,无论客户端是否请求它们被删除。这样的服务器是否提供了超出协议范围的绕过操作。 (关于这一点的讨论在 RFC 的第 8 节中提到,但不是协议本身的一部分。)