1.在邮箱上获取发送邮件密码
在邮箱上开启SMTP服务权限,会获取到一个密码(授权码)
2.添加邮箱配置
spring: mail: host: smtp.163.com # 配置 smtp 服务器地址 port: 25 # smtp 服务器的端口 ssl 994 非ssl 25 username: 11111111@163.com # 配置邮箱用户名(你的邮箱地址) password: ********* # 配置申请到的授权码(刚让复制的授权码) default-encoding: UTF-8 # 配置邮件编码 from: 11111111@163.com
3.添加发送邮箱的依赖
<!--邮件发送依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
4.实现邮箱发送的工具类
@Component
public class EmailUtil {
@Value("${spring.mail.from}") // 从application.yml配置文件中获取
private String from; // 发送发邮箱地址
@Autowired
private JavaMailSender mailSender;
/**
* 发送纯文本邮件信息
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
*/
public void sendMessage(String[] to, String subject, String content) {
// 创建一个邮件对象
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from); // 设置发送发
msg.setTo(to); // 设置接收方
msg.setSubject(subject); // 设置邮件主题
msg.setText(content); // 设置邮件内容
// 发送邮件
mailSender.send(msg);
}
/**
* 发送带附件的邮件信息
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
* @param files 文件数组 // 可发送多个附件
*/
public void sendMessageFiles(String to, String subject, String content, File[] files) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(from); // 设置发送发
helper.setTo(to); // 设置接收方
helper.setSubject(subject); // 设置邮件主题
helper.setText(content); // 设置邮件内容
if (files != null && files.length > 0) { // 添加附件(多个)
for (File file : files) {
helper.addAttachment(file.getName(), file);
}
}
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
mailSender.send(mimeMessage);
}
/**
* 发送带附件的邮件信息
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
* @param file 单个文件
*/
public void sendMessageFile(String to, String subject, String content, File file) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(from); // 设置发送发
helper.setTo(to); // 设置接收方
helper.setSubject(subject); // 设置邮件主题
helper.setText(content); // 设置邮件内容
helper.addAttachment(file.getName(), file); // 单个附件
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
mailSender.send(mimeMessage);
}
/**
* 发送输出流文件
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容
* @param fileName 文件名
* @param dataSource 数据流
*/
public void sendMessageDataSource(String to, String subject, String content, String fileName , DataSource dataSource) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(from); // 设置发送发
helper.setTo(to); // 设置接收方
helper.setSubject(subject); // 设置邮件主题
helper.setText(content); // 设置邮件内容
helper.addAttachment(fileName, dataSource); // 单个附件
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
mailSender.send(mimeMessage);
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
}