python:imaplib --- IMAP4 协议客户端

Python的imaplib模块提供了IMAP4协议客户端的实现,用于与邮件服务器交互,支持SSL安全连接。该模块定义了IMAP4、IMAP4_SSL和IMAP4_stream类,允许执行如登录、选择邮箱、搜索邮件、下载邮件、管理旗标等操作。此外,imaplib还包含了处理服务器响应和时间戳转换的辅助函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python:imaplib --- IMAP4 协议客户端

简介

本模块定义了三个类: IMAP4 、 IMAP4_SSL 和 IMAP4_stream 。这三个类封装了与IMAP4服务器的连接并实现了 RFC 2060 当中定义的大多数IMAP4rev1客户端协议。其与IMAP4( RFC 1730 )服务器后向兼容,但是 STATUS 指令在IMAP4中不支持。
imaplib 模块提供了三个类,其中 IMAP4 是基类:

class imaplib.IMAP4(host=‘’, port=IMAP4_PORT, timeout=None)
这个类实现了实际的 IMAP4 协议。 当其实例被实例化时会创建连接并确定协议版本 (IMAP4 或 IMAP4rev1)。 如果未指明 host,则会使用 ‘’ (本地主机)。 如果省略 port,则会使用标准 IMAP4 端口 (143)。 可选的 timeout 形参指定连接尝试的超时秒数。 如果未指定超时或为 None,则会使用全局默认的套接字超时。

IMAP4 类支持 with 语句。 当这样使用时,IMAP4 LOGOUT 命令会在 with 语句退出时自动发出。 例如:

>>>
from imaplib import IMAP4
with IMAP4("domain.org") as M:
    M.noop()

('OK', [b'Nothing Accomplished. d25if65hy903weo.87'])

在 3.5 版更改: 添加了对 with 语句的支持。

在 3.9 版更改: 添加了可选的 timeout 形参。

有三个异常被定义为 IMAP4 类的属性:

exception IMAP4.error
任何错误都将引发该异常。 异常的原因会以字符串的形式传递给构造器。

exception IMAP4.abort
IMAP4 服务器错误会导致引发该异常。 这是 IMAP4.error 的子类。 请注意关闭此实例并实例化一个新实例通常将会允许从该异常中恢复。

exception IMAP4.readonly
当一个可写邮箱的状态被服务器修改时会引发此异常。 此异常是 IMAP4.error 的子类。 某个其他客户端现在会具有写入权限,将需要重新打开该邮箱以重新获得写入权限。

另外还有一个针对安全连接的子类:

class imaplib.IMAP4_SSL(host=‘’, port=IMAP4_SSL_PORT, keyfile=None, certfile=None, ssl_context=None, timeout=None)
这是一个派生自 IMAP4 的子类,它使用经 SSL 加密的套接字进行连接 (为了使用这个类你需要编译时附带 SSL 支持的 socket 模块)。 如果未指定 host,则会使用 ‘’ (本地主机)。 如果省略了 port,则会使用标准的 IMAP4-over-SSL 端口 (993)。 ssl_context 是一个 ssl.SSLContext 对象,它允许将 SSL 配置选项、证书和私钥打包放入一个单独的 (可以长久存在的) 结构体中。 请阅读 安全考量 以获取最佳实践。

keyfile 和 certfile 是 ssl_context 的旧式替代品 —— 它们可以指向 PEM 格式的私钥和证书链文件用于 SSL 连接。 请注意 keyfile/certfile 形参不能与 ssl_context 共存,如果 keyfile/certfile 与 ssl_context 一同被提供则会引发 ValueError。

可选的 timeout 形参指明连接尝试的超时秒数。 如果参数未给出或为 None,则会使用全局默认的套接字超时设置。

在 3.3 版更改: 增加了 ssl_context 形参。

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

3.6 版后已移除: keyfile 和 certfile 已弃用并转而推荐 ssl_context。 请改用 ssl.SSLContext.load_cert_chain(),或让 ssl.create_default_context() 为你选择系统所信任的 CA 证书。

在 3.9 版更改: 添加了可选的 timeout 形参。

第二个子类允许由子进程所创建的连接:

class imaplib.IMAP4_stream(command)
这是一个派生自 IMAP4 的子类,它可以连接 stdin/stdout 文件描述符,此种文件是通过向 subprocess

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

实战大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值