JavaMail實(shí)現(xiàn)簡單郵件發(fā)送
本文實(shí)例為大家分享了JavaMail實(shí)現(xiàn)簡單郵件發(fā)送的具體代碼,供大家參考,具體內(nèi)容如下
簡單郵件
即純文本郵件,沒有除文字以外的其他所有文件。
傳輸協(xié)議
- SMTP協(xié)議
全稱為 Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議。它定義了郵件客戶端軟件和SMTP郵件服務(wù)器之間,以及兩臺SMTP郵件服務(wù)器之間的通信規(guī)則。
- POP3協(xié)議
全稱為 Post Office Protocol,郵局協(xié)議。它定義了郵件客戶端軟件和POP3郵件服務(wù)器的通信規(guī)則。
郵件發(fā)送原理
①SMTP郵件服務(wù)器:替用戶發(fā)送郵件和接收外面發(fā)送給本地用戶的郵件。
②POP3/IMAP郵件服務(wù)器:幫助用戶讀取SMTP郵件服務(wù)器接收進(jìn)來的郵件。
③申請郵箱其實(shí)就是在郵箱的文件系統(tǒng)中申請一塊地址,用來存放用戶的郵件。
實(shí)現(xiàn)郵件發(fā)送需要使用的類
①JavaMail API(mail.jar)
②Java Activation Framework(activation.jar)
準(zhǔn)備工作
開啟郵箱的POP3和SMTP服務(wù),并獲取授權(quán)碼。
步驟
①準(zhǔn)備參數(shù)
如設(shè)置郵件服務(wù)器(網(wǎng)易的是smtp.163.com),郵件發(fā)送協(xié)議等。
②獲取Session對象
③獲取傳輸對象transport
④登錄授權(quán)
⑤寫郵件
⑥發(fā)郵件
⑦關(guān)閉服務(wù)器資源
代碼實(shí)現(xiàn)
import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; //發(fā)送簡單郵件 public class test1 { ? ? public static void main(String[] args) throws MessagingException { ? ? ? ? Properties properties=new Properties(); ? ? ? ? properties.setProperty("mail.host","smtp.163.com");//設(shè)置郵件服務(wù)器 ? ? ? ? properties.setProperty("mail.transport.protocol","smtp");//郵件發(fā)送協(xié)議 ? ? ? ? properties.setProperty("mail.smtp.auth","true");//需要驗(yàn)證用戶名密碼 ? ? ? ? //使用JavaMail發(fā)送郵件的5個步驟 ? ? ? ? //1、創(chuàng)建定義整個應(yīng)用程序所需的環(huán)境信息的 Session 對象 ? ? ? ? Session session = Session.getInstance(properties); ? ? ? ? //開啟Session的debug模式,這樣就可以查看到程序發(fā)送Email的運(yùn)行狀態(tài) ? ? ? ? session.setDebug(true); ? ? ? ? //2、通過session得到transport對象 ? ? ? ? Transport transport = session.getTransport(); ? ? ? ? //3、使用郵箱的用戶名和授權(quán)碼連上郵件服務(wù)器,發(fā)送郵件時, 發(fā)件人需要提交郵箱的用戶名和密碼給smtp服務(wù)器,用戶名和密碼都通過驗(yàn)證之后才能夠正常發(fā)送郵件給收件人。 ? ? ? ? transport.connect("smtp.163.com",用戶名,授權(quán)碼); ? ? ? ? //4、創(chuàng)建郵件 ? ? ? ? //創(chuàng)建一個郵件對象 ? ? ? ? MimeMessage message=new MimeMessage(session); ? ? ? ? //指明郵件的發(fā)件人 ? ? ? ? message.setFrom(new InternetAddress(發(fā)件人郵箱)); ? ? ? ? //指明收件人 ? ? ? ? message.setRecipient(Message.RecipientType.TO,new InternetAddress(收件人郵箱)); ? ? ? ? //郵件標(biāo)題 ? ? ? ? message.setSubject("簡單郵件發(fā)送"); ? ? ? ? //郵件的文本內(nèi)容 ? ? ? ? message.setText("這是一封簡單的郵件"); ? ? ? ? //5、發(fā)送郵件 ? ? ? ? transport.sendMessage(message,message.getAllRecipients()); ? ? ? ? //關(guān)閉連接 ? ? ? ? transport.close(); ? ? } }
運(yùn)行結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaMail實(shí)現(xiàn)郵件發(fā)送機(jī)制
- JavaMail整合Spring實(shí)現(xiàn)郵件發(fā)送功能
- 基于JavaMail實(shí)現(xiàn)簡單郵件發(fā)送
- 基于JavaMail的Java郵件發(fā)送
- JavaMail郵件發(fā)送機(jī)制詳解
- 基于JavaMail實(shí)現(xiàn)郵件發(fā)送
- 基于JavaMail的Java實(shí)現(xiàn)復(fù)雜郵件發(fā)送功能
- 基于JavaMail的Java實(shí)現(xiàn)簡單郵件發(fā)送功能
- JavaMail實(shí)現(xiàn)郵件發(fā)送的方法
- JavaMail實(shí)現(xiàn)帶附件的郵件發(fā)送
相關(guān)文章
OpenFeign實(shí)現(xiàn)攜帶請求頭方案詳細(xì)介紹
這篇文章主要介紹了OpenFeign實(shí)現(xiàn)攜帶請求頭方案,在通過???OpenFeign???進(jìn)行服務(wù)調(diào)用的過程中,我們需要將用戶的??user-token???、??lang??等信息放入請求header中。在分布式系統(tǒng)中,往往一個業(yè)務(wù)接口內(nèi)部會發(fā)生多次RPC調(diào)用2022-11-11SpringBoot + SpringSecurity 環(huán)境搭建的步驟
這篇文章主要介紹了SpringBoot + SpringSecurity 環(huán)境搭建的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼
這篇文章主要介紹了JAVA Netty實(shí)現(xiàn)聊天室+私聊功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08用Java實(shí)現(xiàn)春聯(lián)?支持自定義字體顏色
大家好,本篇文章主要講的是用Java編寫春聯(lián)?支持自定義字體顏色,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù)
這篇文章主要介紹了SpringBoot基于Actuator遠(yuǎn)程關(guān)閉服務(wù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11