Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

手把手教你用 Java 發送郵件,不用框架

2021 年 3 月 11 日 海马妈妈

郵件發送也是一個老生常談的問題了,代碼雖然簡單,但是許多小夥伴對過程不太理解,所以還是打算和各位小夥伴聊聊這個話題。

郵件協議

我們經常會聽到各種各樣的郵件協議,比如 SMTP、POP3、IMAP ,那麽這些協議有什麽作用,有什麽區別?我們先來討論一下這個問題。

SMTP 是一個基于 TCP/IP 的應用層協議,江湖地位有點類似于 HTTP,SMTP 服務器默認監聽的端口號爲 25 。看到這裏,小夥伴們可能會想到既然 SMTP 協議是基于 TCP/IP 的應用層協議,那麽我是不是也可以通過 Socket 發送一封郵件呢?回答是肯定的。

生活中我們投遞一封郵件要經過如下幾個步驟:

  1. 深圳的小王先將郵件投遞到深圳的郵局
  2. 深圳的郵局將郵件運送到上海的郵局
  3. 上海的小張來郵局取郵件

這是一個縮減版的生活中郵件發送過程。這三個步驟可以分別對應我們的郵件發送過程,假設從 [email protected] 發送郵件到 [email protected] :

  1. [email protected] 先將郵件投遞到騰訊的郵件服務器
  2. 騰訊的郵件服務器將我們的郵件投遞到網易的郵件服務器
  3. [email protected] 登錄網易的郵件服務器查看郵件

郵件投遞大致就是這個過程,這個過程就涉及到了多個協議,我們來分別看一下。

SMTP 協議全稱爲 Simple Mail Transfer Protocol,譯作簡單郵件傳輸協議,它定義了郵件客戶端軟件于 SMTP 服務器之間,以及 SMTP 服務器與 SMTP 服務器之間的通信規則。

也就是說 [email protected] 用戶先將郵件投遞到騰訊的 SMTP 服務器這個過程就使用了 SMTP 協議,然後騰訊的 SMTP 服務器將郵件投遞到網易的 SMTP 服務器這個過程也依然使用了 SMTP 協議,SMTP 服務器就是用來收郵件。

而 POP3 協議全稱爲 Post Office Protocol ,譯作郵局協議,它定義了郵件客戶端與 POP3 服務器之間的通信規則,那麽該協議在什麽場景下會用到呢?當郵件到達網易的 SMTP 服務器之後, [email protected] 用戶需要登錄服務器查看郵件,這個時候就該協議就用上了:郵件服務商都會爲每一個用戶提供專門的郵件存儲空間,SMTP 服務器收到郵件之後,就將郵件保存到相應用戶的郵件存儲空間中,如果用戶要讀取郵件,就需要通過郵件服務商的 POP3 郵件服務器來完成。

最後,可能也有小夥伴們聽說過 IMAP 協議,這個協議是對 POP3 協議的擴展,功能更強,作用類似,這裏不再贅述。

發送QQ郵件准備工作

首先我們需要先登錄 QQ 郵箱網頁版,點擊上方的設置按鈕:

手把手教你用 Java 發送郵件,不用框架

在賬戶選項卡中找到開啓POP3/SMTP選項,如下:

相關文章:

  • 阿裏問題定位神器 Arthas 操作實踐,定位線上BUG,超給力
  • 正則表達式在Java中的使用
  • 程序員:單個TCP(Socket)連接,發送多個文件
  • JDK8新特性你都用了嗎?
  • 面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式
  • Java 14 都快來了,爲什麽還有這麽多人固守Java 8?
軍事

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們