前言
E-mail系統中,包括了 MUA(Mail User Agent) 與 MTA(Mail Transport Agent) 二個部份:
- MUA (Mail User Agent):一般使用者用來讀信、寫信、處理郵件的程式稱之,例如 Windows 的 Outlook、Linux 的 pine。
- MTA (Mail Transport Agent):系統中負責處理信件收發工作的伺服器端軟體稱之,簡單說也就是郵件伺服器,在 Unix 系統中最常使用的就是 Sendmail 與 Postfix.
Mail 運作示意圖及流程圖
電子郵件傳遞示意圖及流程圖
Mail 運作流程說明
- 用戶端使用 MUA 撰寫郵件後,利用 TCP 連接埠 25,將電子郵件傳送至所屬的郵件伺服器 (MTA) 中,這些郵件會被暫時存放在佇列 (Queue) 中。
- 經郵件伺服器的判斷,若收件者為遠端網路的使用者,則伺服器會先跟 DNS 伺服器要求解析遠端伺服器的 IP。
- 如果成功的解析遠端伺服器的 IP 時,則本地端的郵件伺服器 (MTA) 將利用 SMTP 通訊協定將郵件傳送到遠端的郵件伺服器。但若解析失敗,則無法進行郵件的傳遞。
- SMTP 會嘗試與遠端的郵件伺服器連行連接,如果連接成功,則將郵件傳送至遠端的伺服器,收件者即可利用 POP 或 IMAP 的通訊協定,連接至收件者的郵件伺服器下載或直接讀取郵件。但若是遠端郵件伺服器無法接受郵件,則這些郵件會繼續停留在 Queue 中,然後在指定的時間內再次嘗試連接,直到成功或放棄傳送為止。