首先要先在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("發送成功");
}
}