IMAP IDLE 是 IMAP 協定的一項擴充,能夠在無需不斷輪詢的情況下實現即時郵件通知。啟用後,郵件用戶端會與伺服器保持持久連接,並在新郵件到達時立即接收推送通知。這消除了手動重新整理或按固定間隔輪詢的需求,在確保即時感知郵件到達的同時,降低了伺服器負載和電池消耗。
IMAP IDLE 將郵件系統從「拉取型」轉變為「推送型」。如果沒有 IDLE,郵件用戶端必須定期(每 5-15 分鐘)輪詢伺服器,這會產生不必要的網路流量和伺服器負載。有了 IDLE,您可以像使用即時通訊應用程式一樣即時收到郵件,從而提升回應速度和用戶體驗。對於行動設備,與頻繁輪詢相比,IDLE 顯著降低了耗電量,是現代郵件應用程式不可或缺的功能。
當郵件用戶端支援 IMAP IDLE 時,它會在選擇郵箱後向郵件伺服器發送 IDLE 命令。伺服器保持連接開啟,並在發生更改(新郵件、刪除或標記更改)時立即通知用戶端。用戶端在執行其他操作前必須發送 DONE 命令以退出 IDLE 模式。大多數實作會每 29 分鐘重新建立一次 IDLE 連接以防止逾時,因為 RFC 2177 建議伺服器允許至少 30 分鐘的閒置時間。
正規輪詢按固定間隔(如每 5 分鐘)檢查新郵件,無論是否有新訊息。IMAP IDLE 維持持久連接,僅在發生更改時接收即時通知。這帶來了更快的郵件送達和更低的資源佔用。
大多數現代郵件伺服器都支援 IMAP IDLE,包括 Gmail、Outlook、Yahoo 以及 Dovecot、Cyrus 等流行的自代管方案。您可以通過查看 CAPABILITY 響應中的 IDLE 字元來檢查伺服器功能。某些舊版或基礎 IMAP 伺服器可能不支援。
延遲可能是由於網路問題、NAT 逾時導致 IDLE 工作階段斷開、伺服器端頻率限制,或者郵件用戶端在連接斷開後未能正確重連造成的。行動網路尤其容易靜默斷開閒置連接。
標準的 IMAP IDLE 每次連接只能作用於一個資料夾。要監控多個資料夾,您需要多個並行連接。由於某些用戶端和伺服器會限制並行 IDLE 連接數,請優先監控最重要的資料夾。