首頁 > 軟體

JavaMail實現簡單郵件傳送

2022-08-10 18:01:55

本文範例為大家分享了JavaMail實現簡單郵件傳送的具體程式碼,供大家參考,具體內容如下

簡單郵件

即純文字郵件,沒有除文字以外的其他所有檔案。

傳輸協定

  • SMTP協定

全稱為 Simple Mail Transfer Protocol,簡單郵件傳輸協定。它定義了郵件使用者端軟體和SMTP郵件伺服器之間,以及兩臺SMTP郵件伺服器之間的通訊規則。

  • POP3協定

全稱為 Post Office Protocol,郵局協定。它定義了郵件使用者端軟體和POP3郵件伺服器的通訊規則。

郵件傳送原理

①SMTP郵件伺服器:替使用者傳送郵件和接收外面傳送給本地使用者的郵件。

②POP3/IMAP郵件伺服器:幫助使用者讀取SMTP郵件伺服器接收進來的郵件。

③申請郵箱其實就是在郵箱的檔案系統中申請一塊地址,用來存放使用者的郵件。

實現郵件傳送需要使用的類

①JavaMail API(mail.jar)

②Java Activation Framework(activation.jar)

準備工作

開啟郵箱的POP3和SMTP服務,並獲取授權碼。

步驟

①準備引數

如設定郵件伺服器(網易的是smtp.163.com),郵件傳送協定等。

②獲取Session物件

③獲取傳輸物件transport

④登入授權

⑤寫郵件

⑥發郵件

⑦關閉伺服器資源

程式碼實現

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

//傳送簡單郵件
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");//郵件傳送協定
        properties.setProperty("mail.smtp.auth","true");//需要驗證使用者名稱密碼

        //使用JavaMail傳送郵件的5個步驟
        //1、建立定義整個應用程式所需的環境資訊的 Session 物件
        Session session = Session.getInstance(properties);
        //開啟Session的debug模式,這樣就可以檢視到程式傳送Email的執行狀態
        session.setDebug(true);
        //2、通過session得到transport物件
        Transport transport = session.getTransport();
        //3、使用郵箱的使用者名稱和授權碼連上郵件伺服器,傳送郵件時, 發件人需要提交郵箱的使用者名稱和密碼給smtp伺服器,使用者名稱和密碼都通過驗證之後才能夠正常傳送郵件給收件人。
        transport.connect("smtp.163.com",使用者名稱,授權碼);
        //4、建立郵件
        //建立一個郵件物件
        MimeMessage message=new MimeMessage(session);
        //指明郵件的發件人
        message.setFrom(new InternetAddress(發件人郵箱));
        //指明收件人
        message.setRecipient(Message.RecipientType.TO,new InternetAddress(收件人郵箱));
        //郵件標題
        message.setSubject("簡單郵件傳送");
        //郵件的文字內容
        message.setText("這是一封簡單的郵件");
        //5、傳送郵件
        transport.sendMessage(message,message.getAllRecipients());
        //關閉連線
        transport.close();
    }
}

執行結果

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com