1.pom.xml 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.application添加配置信息
# 邮件服务器配置
spring.mail.host=smtp.qq.com
# 必须为STMP服务器开启账户
spring.mail.username=**********@qq.com
# STMP服务器授权码
spring.mail.password=*****
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3.STMP服务器开启(腾讯QQ)
进入邮箱首页->设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务(开启POP3/STMP服务或者IMAP/STMP服务);开启后,生成授权码,用于验证登录;如果忘记可以再次生成,每次需要短信费用;
授权码生成后,添加在spring.mail.password=授权码,此时配置信息完成;
4. 测试
@Resource
private JavaMailSender javaMailSender;
@Test
public void testMail() throws Exception{
final MimeMessage mimeMessage = this.javaMailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
# 申请STMP服务器的QQ账户
message.setFrom("账户QQ****@qq.com");
# 接收邮箱账户
message.setTo("任意邮箱:123邮箱,qq邮箱,阿里云邮箱都可以");
message.setSubject("中央财经大学邀请函");
message.setText("亲爱**同学" +
" 醒醒啦,别睡了");
this.javaMailSender.send(mimeMessage);
}
测试成功后,可以根据业务需求自己编写工具类,方便邮件的发送。
5.@Scheduled实现定时发送
- Cron 表达式是一个字符串,分为 6 或 7 个域,每一个域代表一个含义 Cron 有如下两种语法格式:
(1) Seconds Minutes Hours Day Month Week Year
(2)Seconds Minutes Hours Day Month Week - 实例@Scheduled(cron = "0 0 1 1 1 ?")//每年一月的一号的 1:00:00 执行一次
@Scheduled(cron = "0 0 1 1 1,6 ?") //一月和六月的一号的 1:00:00 执行一次
@Scheduled(cron = "0 0 1 1 1,4,7,10 ?") //每个季度的第一个月的一号的 1:00:00 执行一次
@Scheduled(cron = "0 0 1 1 * ?")//每月一号 1:00:00 执行一次
@Scheduled(cron="0 0 1 * * *") //每天凌晨 1 点执行一次 -
@Scheduled(cron="0 0 1 * * *") // 每天一点发送邮件 public void sendMail() { // doSomeThing // sendMailService // doSomeThing }