源代码:Lib/poplib.py
本模块定义了 1 个 POP3 类,其中封装到 POP3 服务器的连接,并实现议定书 》 所界定的 RFC 1725。 POP3类支持这两个最小的和可选的命令集。此外,本模块还提供了 1 个 POP3_SSL 类,为连接到 POP3 服务器使用 SSL 作为底层的协议层提供支持。
请注意,虽然 POP3 协议得到广泛支持,但它已经过时了。POP3 服务器的实现质量参差不齐,其中大多数性能较差。如果您的邮件服务器支持 IMAP 协议,使用 imaplib 这个库会更好。IMAP4 类,以及 IMAP 服务器,通常会有更好的实现。
poplib 模块提供了 2 个类:
此类实现实际的 POP3 协议。在初始化实例时,将创建连接。如果端口省略,则使用标准的 POP3 端口 (110)。可选的 timeout 参数指定超时值以秒为单位的连接尝试 (如果不指定,将使用全局默认超时设置)。
2.6 版本中的更改:添加了 timeout。
这是在 SSL 加密套接字连接到服务器的POP3的一个子类。如果不指定 port 参数,将使用标准的 POP3-over-SSL 端口 995。keyfile 和 certfile 也是可选的,它们可以包含一个 PEM 格式私人密钥和证书链文件对于 SSL 连接。
版本 2.4 新增。
一个例外被定义为poplib模块的属性:
另请参阅
所有的 POP3 命令由方法的名称相同,在小写字母 ;大多数返回由服务器发送的响应文本。
POP3 实例都具有以下方法:
设置该实例的调试级别。此参数控制调试输出打印的量。默认情况下, 0,不生成任何调试输出。 1的值产生适量的调试输出,通常每个请求的单个行。 2或更高的值会生成调试输出,测井控制连接上发送和接收的每一行的最大量。
返回由 POP3 服务器发送的问候字符串。
发送用户命令答复应该说明密码是必需。
发送的密码,响应包括消息计数和邮箱大小。注意: 服务器上的邮箱的锁定是直到quit ()被调用。
使用更安全的 APOP 身份验证登录到 POP3 服务器。
使用RPOP验证 (类似于 UNIX r 命令) 登录到 POP3 服务器。
获取邮箱状态。其结果是包含2个整数元素的元组: (消息计数, 邮箱大小)。
请求消息列表中,结果是以(response, ['mesg_num octets’ ......], octets)。如果which是设置好的,那么它是邮件收件人的列表。
获得编号为which的邮件的所有信息,并设置为已读。结果是在窗体中(响应, ['行' ......], 个八位字节)。
标志邮件的数which删除。在大部分的服务器直到退出 (主要的例外是 Eudora QPOP,边学挂起的删除在任何中断,故意违反 Rfc) 实际上不执行删除操作。
删除邮箱的任何删除标志。
什么都不做。可为保持活着。
签收: 提交更改,解锁邮箱,则断开连接。
检索消息标头加多少行的消息的消息数的报头之后。结果是在窗体中(响应, ['线' ......], 个八位字节)。
此方法使用,不同于 RETR 命令,POP3 TOP 命令不设置消息的可见的标志 ;不幸的是,顶部很差的 Rfc 中指定和频发-品牌服务器中。手工测试此方法,对你会信任它之前使用的 POP3 服务器。
返回消息摘要 (唯一 id) 列表。如果指定 which,结果包含在窗体中,消息的唯一 id ' 响应 mesgnum uid,否则结果是列表(响应, ['mesgnum uid', ......], 个八位字节)。
POP3_SSL 的实例没有其他的方法。此子类的接口与父类完全相同。
这里有一个极简的例子 (没有错误检查),它将打开邮箱并收信,然后打印所有消息:
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
在本模块的结尾,还有一个包含更广泛的使用的例子的测试部分。