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

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

廣告