JavaMail實現(xiàn)簡單郵件發(fā)送
本文實例為大家分享了JavaMail實現(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ù)器接收進來的郵件。
③申請郵箱其實就是在郵箱的文件系統(tǒng)中申請一塊地址,用來存放用戶的郵件。
實現(xiàn)郵件發(fā)送需要使用的類
①JavaMail API(mail.jar)
②Java Activation Framework(activation.jar)

準備工作
開啟郵箱的POP3和SMTP服務(wù),并獲取授權(quán)碼。

步驟
①準備參數(shù)
如設(shè)置郵件服務(wù)器(網(wǎng)易的是smtp.163.com),郵件發(fā)送協(xié)議等。
②獲取Session對象
③獲取傳輸對象transport
④登錄授權(quán)
⑤寫郵件
⑥發(fā)郵件
⑦關(guān)閉服務(wù)器資源
代碼實現(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");//需要驗證用戶名密碼
? ? ? ? //使用JavaMail發(fā)送郵件的5個步驟
? ? ? ? //1、創(chuàng)建定義整個應(yīng)用程序所需的環(huán)境信息的 Session 對象
? ? ? ? Session session = Session.getInstance(properties);
? ? ? ? //開啟Session的debug模式,這樣就可以查看到程序發(fā)送Email的運行狀態(tài)
? ? ? ? session.setDebug(true);
? ? ? ? //2、通過session得到transport對象
? ? ? ? Transport transport = session.getTransport();
? ? ? ? //3、使用郵箱的用戶名和授權(quán)碼連上郵件服務(wù)器,發(fā)送郵件時, 發(fā)件人需要提交郵箱的用戶名和密碼給smtp服務(wù)器,用戶名和密碼都通過驗證之后才能夠正常發(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(收件人郵箱));
? ? ? ? //郵件標題
? ? ? ? message.setSubject("簡單郵件發(fā)送");
? ? ? ? //郵件的文本內(nèi)容
? ? ? ? message.setText("這是一封簡單的郵件");
? ? ? ? //5、發(fā)送郵件
? ? ? ? transport.sendMessage(message,message.getAllRecipients());
? ? ? ? //關(guān)閉連接
? ? ? ? transport.close();
? ? }
}運行結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot + SpringSecurity 環(huán)境搭建的步驟
這篇文章主要介紹了SpringBoot + SpringSecurity 環(huán)境搭建的步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05
JAVA Netty實現(xiàn)聊天室+私聊功能的示例代碼
這篇文章主要介紹了JAVA Netty實現(xiàn)聊天室+私聊功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
用Java實現(xiàn)春聯(lián)?支持自定義字體顏色
大家好,本篇文章主要講的是用Java編寫春聯(lián)?支持自定義字體顏色,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01
SpringBoot基于Actuator遠程關(guān)閉服務(wù)
這篇文章主要介紹了SpringBoot基于Actuator遠程關(guān)閉服務(wù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11

