20.9. poplib — POP3 协议 Client 端

源代码: Lib/poplib.py


该模块定义了一个类POP3,该类封装了与 POP3 服务器的连接并实现了 RFC 1725中定义的协议。 POP3类同时支持最小和可选命令集。此外,此模块提供了POP3_SSL类,该类提供对连接到使用 SSL 作为基础协议层的 POP3 服务器的支持。

请注意,尽管 POP3 得到了广泛支持,但已过时。 POP3 服务器的实现质量差异很大,而且太多都太差了。如果您的邮件服务器支持 IMAP,则最好使用imaplib.IMAP4类,因为 IMAP 服务器往往会得到更好的实现。

poplib模块提供了两个类:

在 2.6 版中进行了更改:添加了“超时”。

2.4 版的新Function。

poplib模块的属性定义为一个 exception:

See also

  • Module imaplib

  • 标准的 Python IMAP 模块。

  • 有关 Fetchmail 的常见问题

  • fetchmail POP/IMAPClient 端的 FAQ 收集有关 POP3 服务器版本和 RFC 不遵从性的信息,如果您需要基于 POP 协议编写应用程序,这可能会很有用。

20.9.1. POP3 对象

所有 POP3 命令均以小写形式由相同名称的方法表示;大多数返回服务器发送的响应文本。

POP3实例具有以下方法:

与 RETR 命令不同,此方法使用的 POP3 TOP 命令不设置邮件的 seeed 标志。不幸的是,TOP 在 RFC 中指定不明确,并且在品牌外服务器中经常被破坏。信任它之前,请先对将要使用的 POP3 服务器测试此方法。

POP3_SSL的实例没有其他方法。该子类的接口与其父类相同。

20.9.2. POP3 示例

这是一个最小示例(不进行错误检查),该示例打开邮箱并检索和打印所有消息:

import getpass, poplib

M = poplib.POP3('localhost')
M.user(getpass.getuser())
M.pass_(getpass.getpass())
numMessages = len(M.list()[1])
for i in range(numMessages):
    for j in M.retr(i+1)[1]:
        print j

在模块的最后,有一个测试部分,其中包含更广泛的用法示例。

首页