SpringBoot + 发送QQ邮件
1.开启pop3/smtp服务
2.生成邮箱授权码
3.引入依赖
pom.xml
<!-- email -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
4. yml配置
server:
port: 8080
spring:
# email 配置
mail:
# SMTP 服务器地址
host: smtp.qq.com
username: # 你的qq 邮箱地址
password: # 授权码,上面从 qq 邮箱官网得到的授权码
port: 587 # smtp服务器的端口最好是465或者587
protocol: smtp #smtp的协议
default-encoding: UTF-8
5.创建邮件收信人的实体类
@AllArgsConstructor
@NoArgsConstructor
@Data
public class EmailModel implements Serializable {
//邮件主题
private String emailSubject;
//邮件内容
private String emailMessage;
}
5.发送邮件Service
SendEmailService.java
package com.hxut.mrs.service.impl;
import com.hxut.mrs.entity.EmailModel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
/**
* description: SendEmailService
* date: 2022/9/15 20:16
* author: MR.孙
*/
@Service
@Slf4j
public class SendEmailService {
@Autowired
private JavaMailSender javaMailSender;
//发送者地址
@Value("${spring.mail.username}")
private String posterAddress;
/**
* @description: 文本发送
* @param emailModel
* @return: void
* @author: MR.孙
* @date: 2022/9/15 20:22
*/
public void sendEmailText(EmailModel emailModel, String to){
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
try {
//设置发送者邮箱
helper.setFrom(posterAddress);
//设置接收者邮件
helper.setTo(to);
//设置邮箱主题
helper.setSubject(emailModel.getEmailSubject());
//设置邮箱内容
helper.setText(emailModel.getEmailMessage(), false);
//发送邮件
javaMailSender.send(helper.getMimeMessage());
} catch (MessagingException e) {
log.error("发送邮件失败"+e.getMessage());
}
}
}
6.测试邮件发送