依赖
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
配置
spring.mail.username=邮箱
spring.mail.password=授权码
spring.mail.host=smtp.qq.com
# 开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true
使用
@Autowired
private JavaMailSenderImpl mailSender;
// 简单邮件
@Test
void sendMail() {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setSubject("主题");
simpleMailMessage.setText("邮件内容");
simpleMailMessage.setFrom("xxx@qq.com");
simpleMailMessage.setTo("xxx@163.com");
// 发送邮件
mailSender.send(simpleMailMessage);
}
// 复杂邮件
@Test
void mimeMail() throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
// 组装
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setSubject("主题");
// true:开启html支持
helper.setText("<font style='color:red'>邮件内容</font>",true);
// 附件
helper.addAttachment("1.jpg", new File(""));
helper.setFrom("xxx@qq.com");
helper.setTo("xxx@163.com");
// 发送邮件
mailSender.send(mimeMessage);
}
启动类添加@EnableAsync
方法上添加@Async
启动类添加@EnableScheduling
// 注入容器
@Service
public class ScheduledService {
// (秒 分 时 日 月 周几 年)
// ("0/2 1-50/5 11,12 L * 5L 1990")
// '?、*'是通配符,'?'只能出现一次,'/'表示时间间隔,','表示多个时间,'1L'表示最后一个,'-'表示范围
@Scheduled(cron = "0/2 * * * * ?")
public void excu(){
System.out.println("定时任务执行");
}
}