- Python - 网络编程
- Python - 网络基础
- Python - 网络环境
- Python - 互联网协议
- Python - IP 地址
- Python - DNS 查询
- Python - 路由
- Python - HTTP 请求
- Python - HTTP 响应
- Python - HTTP 头部
- Python - 自定义 HTTP 请求
- Python - 请求状态码
- Python - HTTP 认证
- Python - HTTP 数据下载
- Python - 连接复用
- Python - 网络接口
- Python - 套接字编程
- Python - HTTP 客户端
- Python - HTTP 服务器
- Python - 构建 URL
- Python - Web 表单提交
- Python - 数据库和 SQL
- Python - Telnet
- Python - 邮件消息
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - Google 地图
- Python - RSS Feed
Python - IMAP
IMAP 是一种电子邮件检索协议,它不会下载电子邮件。它只是读取并显示它们。这在带宽较低的情况下非常有用。Python 的客户端库 imaplib 用于通过 imap 协议访问电子邮件。
IMAP 代表 互联网邮件访问协议。它首次提出于 1986 年。
关键点
IMAP 允许客户端程序在服务器上操作电子邮件消息,而无需将其下载到本地计算机。
电子邮件由远程服务器保存和维护。
它使我们能够执行任何操作,例如下载、删除邮件而不读取邮件。它使我们能够创建、操作和删除称为邮箱的远程消息文件夹。
IMAP 使用户能够搜索电子邮件。
它允许同时访问多个邮件服务器上的多个邮箱。
IMAP 命令
下表描述了一些 IMAP 命令
| 序号 | 命令描述 |
|---|---|
| 1 | IMAP_LOGIN 此命令打开连接。 |
| 2 | CAPABILITY 此命令请求列出服务器支持的功能。 |
| 3 | NOOP 此命令用于在空闲期间定期轮询新消息或消息状态更新。 |
| 4 | SELECT 此命令有助于选择邮箱以访问消息。 |
| 5 | EXAMINE 它与 SELECT 命令相同,只是不允许对邮箱进行任何更改。 |
| 6 | CREATE 用于创建具有指定名称的邮箱。 |
| 7 | DELETE 用于永久删除具有给定名称的邮箱。 |
| 8 | RENAME 用于更改邮箱的名称。 |
| 9 | LOGOUT 此命令通知服务器客户端已完成会话。服务器必须在 OK 响应之前发送 BYE 未标记响应,然后关闭网络连接。 |
示例
在下面的示例中,我们使用用户凭据登录到 gmail 服务器。然后我们选择显示收件箱中的邮件。一个 for 循环用于逐一显示获取的邮件,最后关闭连接。
import imaplib
import pprint
imap_host = 'imap.gmail.com'
imap_user = 'username@gmail.com'
imap_pass = 'password'
# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)
## login to server
imap.login(imap_user, imap_pass)
imap.select('Inbox')
tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
tmp, data = imap.fetch(num, '(RFC822)')
print('Message: {0}\n'.format(num))
pprint.pprint(data[0][1])
break
imap.close()
根据邮箱配置,邮件将显示。
广告