郵件系列
java 如何實現傳送郵件 email?
java 搭建屬於自己的郵件伺服器
java 傳送郵件 css-style 樣式丟失錯亂問題,有解決方案
java 傳送郵件-04-java 郵件傳送 http 介面如何定義?
開源專案
email: 一行程式碼實現郵件傳送
前言
大家好,我是老馬。
大家日常開發,對於郵件傳送應該能不陌生。本系列就讓我們一起學習一下郵件相關的內容。
如何使用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 郵箱
網易相對比較簡單,直接開啟【授權碼】
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");
後續特性
-
支援常見郵箱
-
支援郵件模板