首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

JavaMail 入門系列(一):郵件系統核心協議、服務器架構與傳輸流程全解析

     編輯:Java 綜合教學

電子郵件系統核心角色

現代郵件系統由三大核心組件構成:

  • 郵件用戶代理(MUA):Outlook、Foxmail、Gmail 網頁版等客戶端
  • 郵件傳輸代理(MTA):SMTP 服務器,負責郵件路由與投遞(Postfix、Sendmail、Exchange)
  • 郵件存取代理(MDA/POP3/IMAP Server):郵箱存儲與讀取服務(Dovecot、Courier)

郵件服務器雙協議架構

郵件地址結構與郵箱存儲

username@domain.com

  • @ 前綴:用戶名(郵箱賬號)
  • @ 後綴:域名(郵件服務器標識,DNS MX 記錄指向 MTA)

郵件服務器為每個賬號分配存儲配額,超限將拒收新郵件。

完整郵件傳輸流程(以 lisi@sina.com → wangwu@sohu.com 為例)

  1. 提交階段:Lisi 通過 MUA(SMTP 協議)連接 sina SMTP 服務器,認證後提交郵件
  2. 路由判斷:sina MTA 解析收件域 sohu.com,查詢 DNS MX 記錄獲取 sohu SMTP 地址
  3. 服務器間轉發:sina MTA 通過 SMTP 將郵件轉發給 sohu MTA
  4. 入庫存儲:sohu MTA 驗證收件人存在,將郵件存入 wangwu 郵箱(MDA)
  5. 讀取階段:Wangwu 通過 MUA(POP3/IMAP 協議)連接 sohu MDA,下載/同步郵件

關鍵技術細節

DNS MX 記錄:郵件路由導航

# 查詢域名郵件交換記錄
dig MX sohu.com
# 輸出示例
sohu.com.  3600  IN  MX  10  mx1.sohu.com.
sohu.com.  3600  IN  MX  20  mx2.sohu.com.

優先級數字越小優先級越高,發送方按優先級嘗試連接。

SMTP 會話簡化流程

S: 220 smtp.sina.com ESMTP Postfix
C: EHLO client.example.com
S: 250-PIPELINING
S: 250-SIZE 10240000
S: 250-AUTH LOGIN PLAIN
C: AUTH LOGIN
S: 334 VXNlcm5hbWU6
C: bGlzaUBzaW5hLmNvbQ==
S: 334 UGFzc3dvcmQ6
C: cGFzc3dvcmQxMjM=
S: 235 Authentication successful
C: MAIL FROM:
S: 250 2.1.0 Ok
C: RCPT TO:
S: 250 2.1.5 Ok
C: DATA
S: 354 End data with .
C: Subject: Test
C: From: lisi@sina.com
C: To: wangwu@sohu.com
C: 
C: Hello World
C: .
S: 250 2.0.0 Ok: queued as 12345
C: QUIT
S: 221 2.0.0 Bye

POP3 vs IMAP 選型指南

協議全稱端口核心職責典型軟件
SMTPSimple Mail Transfer Protocol25/465/587發送、轉發、投遞郵件Postfix, Exim, Exchange
POP3Post Office Protocol v3110/995下載郵件到本地,通常刪除服務端Dovecot, Courier
IMAPInternet Message Access Protocol143/993同步郵件狀態,多端一致,服務端保留Dovecot, Courier

JavaMail API 核心類預覽

下篇將實戰講解:

  • Session:郵件會話上下文,持有認證與協議配置
  • Message/MimeMessage:郵件實體(主題、正文、附件、頭部)
  • Transport:SMTP 發送實現
  • Store/Folder:POP3/IMAP 接收與郵箱操作
  • Authenticator:認證器

參考資源

  • RFC 5321 (SMTP)、RFC 1939 (POP3)、RFC 3501 (IMAP)
  • 《JavaMail API 開發指南》- Sun Microsystems
  • Apache James / Postfix + Dovecot 搭建測試環境
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
場景推薦協議理由
單設備、離線閱讀、節省服務器空間POP3下載後可刪除服務端,適合早期帶寬受限環境
多設備同步、服務端歸檔、標記已讀/標星同步IMAP郵件留在服務器,狀態實時同步,現代標準選擇
企業郵箱、團隊協作、共享郵箱IMAP + 共享命名空間支援 ACL 權限控制、共享文件夾