一、前置需求
1、準備郵箱
2、登錄授權碼
qq郵箱在–>設置–>賬號POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務
開啟服務
二、發送郵件
1、簡單郵件
包含郵件標題、郵件正文
2、引入mail啟動器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
3、mail參數配置
application.yml
mail:username: User@qq.com #填寫郵箱地址password: 123456 #填寫授權碼host: smtp.qq.com #發送郵件的host
4、API
JavaMailSender:發送郵件的客戶端
send(mail)
SimpleMailMessage:分裝簡單的郵件的Bean
setSubject(標題)
setText(正文)
setTo(收件地址)
setFrom(發件地址)
@Service
public class SendEmailCodeService {//發送郵件驗證碼public static void sendEmailCode(JavaMailSender mailSender, String email, String subject, String code) throws MailSendException {//TODO: 發送郵件驗證碼SimpleMailMessage message = new SimpleMailMessage(); //創建SimpleMailMessage對象message.setFrom("User@qq.com"); //設置發件人message.setSubject(subject); //設置郵件主題message.setText("您的驗證碼為:" + code); //設置郵件內容message.setTo(email); //設置收件人郵箱mailSender.send(message); //發送郵件}
}
我配置的是qq郵箱,發送郵件時報錯:
經過查詢:解決方法配置application.yml
發送郵件:530 Login fail. A secure connection is requiered(such as ssl)
發送成功:
三、復雜郵件
1、復雜郵件有更加豐富的內容,如:圖片、鏈接、附件等
2、API
JavaMailSender:發送郵件的客戶端
send(mail)
MimeMessage:封裝復雜郵件的Bean
send.createMimeMessage()
MimeMessageHelper:設置復雜郵件的輔助工具
setSubject(標題)
setText(正文,escapeHtml)
setTo(收件地址)
setFrom(發件地址)
addAttachment(fileName,file)