java 實現 email 郵件發送最簡單優雅的方式(網易 163 爲例)

如何使用IMAP服務?

首先介紹一些郵件發送的基礎知識,如果你已經知道可以跳過。

直接到 Email 郵件發送實現的部分。

IMAP是什麼?

IMAP,即Internet Message Access Protocol(互聯網郵件訪問協議),您可以通過這種協議從郵件服務器上獲取郵件的信息、下載郵件等。

IMAP與POP類似,都是一種郵件獲取協議。

IMAP和POP有什麼區別?

POP允許電子郵件客戶端下載服務器上的郵件,但是您在電子郵件客戶端的操作(如:移動郵件、標記已讀等),這是不會反饋到服務器上的,比如:您通過電子郵件客戶端收取了QQ郵箱中的3封郵件並移動到了其他文件夾,這些移動動作是不會反饋到服務器上的,也就是說,QQ郵箱服務器上的這些郵件是沒有同時被移動的。

但是IMAP就不同了,電子郵件客戶端的操作都會反饋到服務器上,您對郵件進行的操作(如:移動郵件、標記已讀等),服務器上的郵件也會做相應的動作。

也就是說,IMAP是“雙向”的。

同時,IMAP可以只下載郵件的主題,只有當您真正需要的時候,纔會下載郵件的所有內容。

如何使用IMAP服務?

使用IMAP很簡單,首先,您需要先在QQ郵箱中啓用IMAP功能,然後,配置好客戶端,就可以使用了。

開啓 SMTP 服務

QQ 郵箱

【設置】-【賬戶】-【POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務】

最下邊開啓

  • POP3/SMTP 服務

  • IMAP/SMTP 服務

網易 163 郵箱

image

網易相對比較簡單,直接開啓【授權碼】

Email

Email 是基於 java 實現的發送郵件的工具包,力求簡單優雅。

創作緣由

看了各種 email 工具感覺沒有想象中方便。

就自己實現一個,後續會陸續加入新的特性。

特性

  • Fluent 流式語法

  • 網易 163 郵箱的發送支持

  • 支持發送給多個收件人,多個(祕密)抄送者

快速開始

環境要求

jdk7+

maven 3.x+

引入

<plugin>
    <groupId>com.github.houbb</groupId>
    <artifactId>email</artifactId>
    <version>0.0.2</version>
</plugin>

發送郵件

此處密碼爲網易郵箱對應的授權碼。

EmailBs.auth("[email protected]", "xxx")
        .content("自定義內容")
        .sendTo("[email protected]");

這裏會通過 [email protected] 發送給 [email protected] 一封郵件。

郵件標題默認爲無標題,內容爲你的自定義內容。

你可以通過指定,配置更多豐富的特性。

方法列表

方法 說明
auth(username, password) username 爲郵箱名稱,password 爲對應密碼
content(subject, content) subject 爲郵件標題,content 爲郵件內容
content(content) subject 默認爲 "無標題",content 爲郵件內容
sendTo(toArray) toArray 爲收件人列表
cc(ccArray) ccArray 爲抄送人列表
bcc(bccArray) bccArray 爲祕密抄送人列表

使用的例子

你可以指定多個收件人以及抄送人。

示例代碼如下:

EmailBs.auth("[email protected]", "xxx")
       .content("自定義主題", "自定義內容")
       .cc("抄送者[email protected]", "抄送者[email protected]")
       .bcc("祕密抄送者[email protected]", "祕密抄送者[email protected]")
       .sendTo("收件人[email protected]", "收件人[email protected]");

後續特性

  • 支持常見郵箱

  • 支持郵件模板

拓展閱讀

更多實時資訊,前沿技術,生活趣事。盡在公衆號【老馬嘯西風】
在這裏插入圖片描述

參考資料

java實現郵箱發送郵件功能

java基礎實現郵件發送(以qq和網易爲例)

javamail實現解析郵箱收件箱

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章