JavaMail實現(xiàn)簡單郵件發(fā)送
本文實例為大家分享了JavaMail實現(xiàn)簡單郵件發(fā)送的具體代碼,供大家參考,具體內(nèi)容如下
簡單郵件
即純文本郵件,沒有除文字以外的其他所有文件。
傳輸協(xié)議
- SMTP協(xié)議
全稱為 Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議。它定義了郵件客戶端軟件和SMTP郵件服務器之間,以及兩臺SMTP郵件服務器之間的通信規(guī)則。
- POP3協(xié)議
全稱為 Post Office Protocol,郵局協(xié)議。它定義了郵件客戶端軟件和POP3郵件服務器的通信規(guī)則。
郵件發(fā)送原理

①SMTP郵件服務器:替用戶發(fā)送郵件和接收外面發(fā)送給本地用戶的郵件。
②POP3/IMAP郵件服務器:幫助用戶讀取SMTP郵件服務器接收進來的郵件。
③申請郵箱其實就是在郵箱的文件系統(tǒng)中申請一塊地址,用來存放用戶的郵件。
實現(xiàn)郵件發(fā)送需要使用的類
①JavaMail API(mail.jar)
②Java Activation Framework(activation.jar)

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

步驟
①準備參數(shù)
如設置郵件服務器(網(wǎng)易的是smtp.163.com),郵件發(fā)送協(xié)議等。
②獲取Session對象
③獲取傳輸對象transport
④登錄授權(quán)
⑤寫郵件
⑥發(fā)郵件
⑦關閉服務器資源
代碼實現(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");//設置郵件服務器
? ? ? ? properties.setProperty("mail.transport.protocol","smtp");//郵件發(fā)送協(xié)議
? ? ? ? properties.setProperty("mail.smtp.auth","true");//需要驗證用戶名密碼
? ? ? ? //使用JavaMail發(fā)送郵件的5個步驟
? ? ? ? //1、創(chuà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)碼連上郵件服務器,發(fā)送郵件時, 發(fā)件人需要提交郵箱的用戶名和密碼給smtp服務器,用戶名和密碼都通過驗證之后才能夠正常發(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());
? ? ? ? //關閉連接
? ? ? ? transport.close();
? ? }
}運行結(jié)果

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Java 隊列實現(xiàn)原理及簡單實現(xiàn)代碼
這篇文章主要介紹了Java 隊列實現(xiàn)原理及簡單實現(xiàn)代碼的相關資料,需要的朋友可以參考下2016-10-10
SpringBoot integration實現(xiàn)分布式鎖的示例詳解
常規(guī)項目都是采用Redission來實現(xiàn)分布式鎖,進行分布式系統(tǒng)中資源競爭加鎖操作,偶然發(fā)現(xiàn)SpringBoot中的integration也實現(xiàn)多種載體的分布式鎖控制,下面我們就來看看具體實現(xiàn)方法吧2023-12-12

