配置邮箱
登陆qq邮箱后,找到右上角头像选择[账号与安全]
选择[安全设置],找到SMTP服务并选择打开
按照步骤获取授权码
项目整合
引入依赖
<!-- emaill-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置文件 aplication.yml
spring:
mail:
#smtp服务主机 163邮箱则为smtp.163.com
host: smtp.qq.com
#服务协议
protocol: smtp
# 编码集
default-encoding: UTF-8
#发送邮件的账户
username: xxxxxxx@qq.com
#授权码
password: xxxxxx
test-connection: true
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
Email配置类
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
public class EmailProperties {
@Value("${spring.mail.username}")
private String username;
}
发送邮件实体类
import lombok.Data;
import java.io.Serializable;
@Data
public class ToEmail implements Serializable {
/**
* 邮件接收方
*/
private String to;
/**
* 邮件主题
*/
private String subject;
/**
* 邮件内容
*/
private String content;
}
核心代码
@Resource
private JavaMailSender mailSender;
@Resource
private EmailProperties emailProperties;
@GetMapping("test")
public void test(ToEmail toEmail){
System.out.println(toEmail);
//创建简单邮件消息
SimpleMailMessage message = new SimpleMailMessage();
//谁发的
message.setFrom(emailProperties.getUsername());
//谁要接收
message.setTo(toEmail.getTo());
//邮件标题
message.setSubject(toEmail.getSubject());
//邮件内容
message.setText(toEmail.getContent());
try {
mailSender.send(message);
} catch (MailException e) {
e.printStackTrace();
}
}
测试
发送成功
接手成功