Java實現發送QQ郵箱

首先要先在QQ郵箱裏開啓服務

超詳細博客 ←點擊這裏

QQ郵箱–>郵箱設置–>賬戶>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 開啓POP3/SMTP服務,然後獲取授權碼(注意不要將授權碼泄露,一個賬戶可以擁有多個授權碼)
在這裏插入圖片描述

package com.tuhu.back.utils;

import org.springframework.stereotype.Service;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

//import org.springframework.mail.javamail.JavaMailSender;
//import org.springframework.mail.javamail.MimeMessageHelper;

/**
 * @Author: zml
 * @Description: 描述
 * @CreateDate: 2020/2/14
 * @UpdateDate: 2020/2/14
 * @UpdateRemark: 修改內容
 * @Version: 1.0
 */
//@Component
@Service
public class EmailUtils {

//    @Resource
//    JavaMailSender mailSender;

    private static final String host = "smtp.qq.com";
    private static final String from = "[email protected]";
    private static final String username = "[email protected]";    // 賬號
    private static final String password = "dz*****ihf";   // 第三方授權碼


    /**
     * 發送郵件
     * @param to 目的地
     * @param code 內容
     * @throws Exception
     */
    public static Result sendMail(String to,String code) throws MessagingException {
        //1.配置發送郵件的屬性
        Properties properties = new Properties();
        properties.setProperty("mail.smtp.host", "localhost"); //設置協議主機
        properties.setProperty("mail.smtp.auth", "true"); //設置smtp是否需要認證
        //2.根據屬性獲得一個會話
        Session session = Session.getInstance(properties);
        //3.設置會話是debug模式(會打印更多相關信息)
        session.setDebug(true);
        //4.創建郵件主題信息對象
        MimeMessage message = new MimeMessage(session);
        //5.設置發件人
        message.setFrom(new InternetAddress(from));
        //6.設置郵件主題
        message.setSubject("你好這是郵箱驗證碼");
        //7.設置郵件正文
        message.setText(code);
        //8.設置收件人: TO-發送    CC-抄送   BCC-密送
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
        //9.獲取發送器對象:提供指定的協議
        Transport transport = session.getTransport("smtp");
        //10.設置發件人的信息
        transport.connect(host, username, password);
        //11.發送郵件
        transport.sendMessage(message, message.getAllRecipients());
        //12.關閉資源
        transport.close();
        return Result.ok("發送成功");
    }

}

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