Java 發送郵件 Java發送郵件的幾種方式

Java 後端發送QQ郵件

也是由於這次需要這個功能,就廣搜資料先做了幾個Demo出來
首先需要了解一下常用的幾種郵箱:QQ郵箱、163郵箱、126郵箱、企業郵箱;其中企業郵箱又分爲很多企業下的,比如說:網易郵箱、阿里郵箱等。總之,這些都不重要,只需要知道怎麼實現就好。
接下來說一下在實現方式上的區別:
1、QQ郵箱
2、163郵箱,163郵箱跟126郵箱是一家的,所以是線上並沒有區別。
本篇文章以QQ郵箱發送至QQ郵箱爲例給貼上完整的Demo
下一篇文章會寫到163郵箱發送郵件到其他郵箱(包括QQ郵箱、163郵箱、企業郵箱等)
首先給一個完整的QQ郵件發送的Demo
該Demo爲發送一個純文本文件

public class SendEmailTest {
    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<>();
        Properties properties = new Properties();
        properties.put("mail.transport.protocol", "smtp");// 連接協議
        properties.put("mail.smtp.host", "smtp.qq.com");// 主機名
        properties.put("mail.smtp.port", 465);// 端口號
        properties.put("mail.smtp.auth", "true");//設置smtp是否需要認證
        properties.put("mail.smtp.ssl.enable", "true");// 設置是否使用ssl安全連接 ---一般都使用
        properties.put("mail.debug", "true");// 設置是否顯示debug信息 true 會在控制檯顯示相關信息
        try{
            // 得到回話對象
            Session session = Session.getInstance(properties);
            // 獲取郵件對象
            Message message = new MimeMessage(session);
            // 設置發件人郵箱地址
            message.setFrom(new InternetAddress("[email protected]"));
            // 設置收件人郵箱地址
			//        message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{
			new InternetAddress("[email protected]"),
			new InternetAddress("[email protected]"),
			new InternetAddress("[email protected]")});//多個收件人
            message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));//一個收件人
            // 設置郵件標題
            message.setSubject("女神節快樂!");
            // 設置郵件內容
            message.setText("事事如意!");
            message.setSentDate(new Date());
            // 得到郵差對象
            Transport transport = session.getTransport();
            // 連接自己的郵箱賬戶
            transport.connect("[email protected]", "ugrcsuflldvqgge");// 密碼爲QQ郵箱開通的stmp服務後得到的客戶端授權碼
            // 發送郵件
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
            System.out.println("message = 發送成功!");
        }catch (Exception e){
            System.out.println("message = 發送失敗!");
        }
    }
}

該Demo可以直接執行,需要修改的地方只有收件人地址、發件人地址、發件人授權碼
關於授權碼
由於發送郵件時不是在郵箱內發送,所以第三方登錄授權碼
如何獲取QQ授權碼

Java發送郵件的幾種方式

如果覺得該文章對你有用,請手動爲我點贊,支持一下吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章