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

如何使用IMAP服務?

首先介紹一些郵件發送的基礎知識,若是你已經知道能夠跳過。html

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

IMAP是什麼?

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

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

IMAP和POP有什麼區別?

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

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

也就是說,IMAP是「雙向」的。ide

同時,IMAP能夠只下載郵件的主題,只有當您真正須要的時候,纔會下載郵件的全部內容。工具

如何使用IMAP服務?

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

開啓 SMTP 服務

QQ 郵箱

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

最下邊開啓

  • 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("xxx@163.com", "xxx")
        .content("自定義內容")
        .sendTo("xxx@yy.com");

這裏會經過 xxx@163.com 發送給 xxx@yy.com 一封郵件。

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

你能夠經過指定,配置更多豐富的特性。

方法列表

方法 說明
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("xxx@163.com", "xxx")
       .content("自定義主題", "自定義內容")
       .cc("抄送者1@xx.com", "抄送者2@xx.com")
       .bcc("祕密抄送者1@xx.com", "祕密抄送者2@xx.com")
       .sendTo("收件人1@xx.com", "收件人2@xx.com");

後續特性

  • 支持常見郵箱

  • 支持郵件模板

拓展閱讀

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

參考資料

java實現郵箱發送郵件功能

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

javamail實現解析郵箱收件箱

相關文章
相關標籤/搜索