poplib — POP3 协议 Client 端

源代码: Lib/poplib.py


该模块定义了一个类POP3,该类封装了与 POP3 服务器的连接并实现了 RFC 1939中定义的协议。 POP3类支持 RFC 1939中的最小和可选命令集。 POP3类还支持 RFC 2595中引入的STLS命令,以在已构建的连接上启用加密通信。

此外,此模块提供了POP3_SSL类,该类提供了对连接到使用 SSL 作为基础协议层的 POP3 服务器的支持。

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

poplib模块提供了两个类:

用参数selfhostport引发auditing event poplib.connect

所有命令都将引发带有参数selflineauditing event poplib.putline,其中line是将要发送到远程主机的字节。

用参数selfhostport引发auditing event poplib.connect

所有命令都将引发带有参数selflineauditing event poplib.putline,其中line是将要发送到远程主机的字节。

在版本 3.2 中更改:添加了* context *参数。

在版本 3.4 中进行了更改:该类现在支持使用ssl.SSLContext.check_hostname服务器名称指示(请参阅ssl.HAS_SNI)检查主机名。

从 3.6 版开始不推荐使用:* keyfile certfile 不再推荐使用 context *。请改用ssl.SSLContext.load_cert_chain(),或让ssl.create_default_context()为您选择系统的受信任 CA 证书。

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

See also

  • Module imaplib

  • 标准的 Python IMAP 模块。

  • 有关 Fetchmail 的常见问题

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

POP3 Objects

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

POP3实例具有以下方法:

3.4 版的新Function。

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

3.5 版中的新Function。

此方法支持passssl.SSLContext.check_hostname服务器名称指示(请参阅ssl.HAS_SNI)检查主机名。

3.4 版的新Function。

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

POP3 Example

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

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)

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

首页