Python IMAP

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

IMAP代表Internet邮件访问协议。它于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循环用于逐个显示获取的消息,最后关闭连接。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.codebaoku.com
# Date : 2020-08-25
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()

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

SSH或安全套接字Shell,是一种网络协议,提供了一种访问远程计算机的安全方式。Secure Shell在通过不安全网络(例如Internet)连接的两台计算机之间提供了强大的身份验证和安全的加密数据通信。SSH被网 ...