CS KAIROS · LEARNING LIBRARY

M04-06 · SMTP 列舉

先記住一句:SMTP 回覆告訴我們郵件服務在某一步接受或拒絕了什麼;帳號存在、郵件送達與轉寄權限,要分開確認。

SMTP 是做什麼的?

SMTP(Simple Mail Transfer Protocol,簡易郵件傳輸協定)負責提交與傳送電子郵件。

想像郵局收件櫃檯:先確認窗口有開,再詢問服務、交代收件地址,最後才交付信件。窗口接受某一步,與收件人實際收到信,是不同階段。

SMTP 列舉就是整理服務招呼、支援功能與命令回覆,用來盤點郵件系統及檢查資訊揭露。SMTP 規格

25、587、465,分別在哪裡用?

- TCP 25:郵件伺服器之間傳送郵件的標準入口。 - TCP 587:郵件用戶端提交郵件的標準入口。 - TCP 465:透過隱含 TLS 提交郵件;連線開始就進行 TLS 協商。

「提交」像把信交給自己的郵局;「伺服器間傳送」像郵局接力運送。實際服務與政策,要看協定回應和管理設定。郵件提交|提交服務與 TLS

網頁補充:三種服務入口

依用途辨識,再查實際回應與設定。

  • TCP 25

    郵件伺服器之間傳送郵件。

  • TCP 587

    用戶端提交郵件;傳輸保護另查。

  • TCP 465

    隱含TLS提交;連線開始就協商TLS。

哪些命令與回覆值得認識?

先掌握各命令在問什麼:

- EHLO:介紹用戶端,取得伺服器宣告的延伸功能;HELO 是較基本的招呼方式。 - VRFY:請伺服器查證使用者或郵件地址資訊。 - EXPN:請伺服器展開郵件清單。 - RCPT TO:在郵件交易中提出收件地址,屬投遞流程的一部分。 - QUIT:結束連線。

VRFY、EXPN 的資訊可能因政策受到限制。RCPT TO 的回覆則要放回當次交易條件判讀。

例如 252 表示無法完成地址查證,但表示願意接受郵件並嘗試投遞;地址是否有效仍待核對。550 可能涉及地址不存在、存取限制或政策拒絕,要保留完整文字。

同樣是 250,也要記下它回覆哪個命令:接受收件地址,與收完郵件內容後承擔投遞責任,是不同階段;最後是否送達,另查投遞紀錄。命令與回覆判讀

若回覆還附有 5.1.1、5.7.1 這類加強狀態碼,可協助區分地址問題與政策問題。仍要一起看命令、完整回覆及伺服器日誌。加強狀態碼

STARTTLS 與 AUTH,各自處理什麼?

STARTTLS 用來把既有 SMTP 連線升級成 TLS。看到伺服器宣告 STARTTLS,代表它提供這項能力;實際傳輸保護要確認協商成功、憑證驗證與有效設定。

TLS 建立後,應重新送 EHLO,取得當時的功能清單,因為清單可能改變。STARTTLS 規格

AUTH 用來進行身分驗證。伺服器列出 AUTH 方法,是能力宣告;完成驗證並收到成功回覆,才是這次驗證成功的證據。該身分能寄往哪些目的地,仍由授權政策決定。SMTP 身分驗證

TLS 保護連線,AUTH 確認身分,郵件轉送政策決定允許的用途,三者一起看。

用一個合成案例串起來

以下是假想的授權實驗室紀錄,沒有連線、查詢或寄信。伺服器與測試名稱都已事先約定:

- 建立連線:收到 220 招呼。 - 送出 EHLO:回覆功能清單,其中有 STARTTLS。 - 在約定範圍查證合成名稱 labuser:VRFY 回覆 252。 - 結束連線;本例未進行身分驗證、收件地址測試或郵件提交。

可以記成:

SMTP 服務回覆招呼,並宣告 STARTTLS。對 labuser 的查證回覆為 252,地址有效性待核對。本例保留功能宣告與查證回覆;TLS 協商、登入、投遞及轉送能力另行驗證。

這份紀錄的成果是整理服務能力與查證回覆;後續可以依驗證目的補上對應證據。

網頁補充:合成案例的觀察順序

這是教材情境的順序,不是學習完成狀態。

  1. 220招呼

    記錄服務回應。

  2. EHLO功能

    記錄STARTTLS能力宣告。

  3. VRFY 252

    保留查證回覆,地址有效性待核對。

  4. 結束與整理

    TLS協商、登入與投遞留待各自驗證。

防護與證據怎麼做?

防護先從服務用途出發:

- 將 VRFY、EXPN 的可用範圍與回覆資訊,限制在需要的管理情境。 - 設定明確的收件網域與轉送政策,避免成為 Open Relay(開放轉送),讓未獲授權的外部來源利用伺服器替外部目的地送信。 - 對提交服務落實身分驗證與 TLS,妥善保護帳密。 - 觀察大量地址查詢、驗證失敗與異常郵件交易,搭配限制及日誌調查。SMTP 反濫用建議|提交服務的傳輸保護

每次保存時間、來源位置、目標與埠、TLS/驗證狀態、命令階段及完整回覆。驗證送達或轉送能力時,另外約定受控的寄件端、收件端與投遞證據。

公開教材使用合成地址;私人帳密、郵件內容與真實收件人資料留在受保護紀錄。

小檢核

伺服器在 EHLO 回覆中列出 STARTTLS,對 VRFY labuser 回覆 252。同事說:「這代表 labuser 存在,而且我們已經用加密連線成功寄信。」

請用兩三句話說明:目前確認了什麼?加密連線、地址有效性與郵件送達,各還需要什麼證據?

這是待回答的小檢核。網站不會自動送出答案或更新理解;Q&A待實際問題與討論。下一核心為M04-07 Unix/Linux使用者列舉。

概念 Q&A

待補:收到相關問題後,會整理為匿名教學版。