Java发送邮件
自用,怕找不到了,懒得再写了
pom引入jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
配置文件
因为该实现类会去配置文件读属性
# 发送邮件配置
spring:
mail:
host: smtp.qq.com # 配置 smtp 服务器地址
port: 587 # smtp 服务器的端口
username: xxxxxxx@qq.com # 接收方邮箱
password: xxxxxxxxxx# 配置申请到的授权码
default-encoding: UTF-8 # 配置邮件编码
properties:
mail:
smtp:
socketFactoryClass: javax.net.ssl.SSLSocketFactory # 配饰 SSL 加密工厂
debug: false # ture会消耗性能,建议没问题之后改为false
from: xxxxxxx@qq.com # 发送方邮箱
代码
@Value("${spring.mail.from}")
private String from; // 发送方邮箱地址
@Value("${spring.mail.username}")
private String user; // 发送给邮箱地址
@Resource
private JavaMailSender mailSender;
/**
* 发送纯文本邮件信息
*/
public void send() {
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from);
msg.setTo(user);
msg.setSubject("今日需求情况");
msg.setText(generateData());
mailSender.send(msg);
}
/**
* 发送带附件的邮件信息
*
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
* @param files 文件数组 // 可发送多个附件
*/
public void sendMessageCarryFiles(String subject, String content, File[] files) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setFrom(from);
helper.setTo(user);
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);
}