Python - IMAP



IMAP 是一种电子邮件检索协议,它不会下载电子邮件。它只是读取并显示它们。这在带宽较低的情况下非常有用。Python 的客户端库 imaplib 用于通过 imap 协议访问电子邮件。

IMAP 代表 互联网邮件访问协议。它首次提出于 1986 年。

关键点

  • IMAP 允许客户端程序在服务器上操作电子邮件消息,而无需将其下载到本地计算机。

  • 电子邮件由远程服务器保存和维护。

  • 它使我们能够执行任何操作,例如下载、删除邮件而不读取邮件。它使我们能够创建、操作和删除称为邮箱的远程消息文件夹。

  • IMAP 使用户能够搜索电子邮件。

  • 它允许同时访问多个邮件服务器上的多个邮箱。

IMAP 命令

下表描述了一些 IMAP 命令

序号命令描述
1IMAP_LOGIN
此命令打开连接。
2CAPABILITY
此命令请求列出服务器支持的功能。
3NOOP
此命令用于在空闲期间定期轮询新消息或消息状态更新。
4SELECT
此命令有助于选择邮箱以访问消息。
5EXAMINE
它与 SELECT 命令相同,只是不允许对邮箱进行任何更改。
6CREATE
用于创建具有指定名称的邮箱。
7DELETE
用于永久删除具有给定名称的邮箱。
8RENAME
用于更改邮箱的名称。
9LOGOUT
此命令通知服务器客户端已完成会话。服务器必须在 OK 响应之前发送 BYE 未标记响应,然后关闭网络连接。

示例

在下面的示例中,我们使用用户凭据登录到 gmail 服务器。然后我们选择显示收件箱中的邮件。一个 for 循环用于逐一显示获取的邮件,最后关闭连接。

import imaplib
import pprint

imap_host = 'imap.gmail.com'
imap_user = '[email protected]'
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()

根据邮箱配置,邮件将显示。

广告