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迴圈用於逐個顯示獲取的消息,最後關閉連接。

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()

根據郵箱配置,顯示郵件。


上一篇: Python POP3 下一篇: Python SSH