1.邮件发送需要引入spring-boot-starter-mail依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.在application.properties中配置发送人邮箱信息。这里我使用QQ邮箱作为发送人邮箱,需要在QQ邮箱中设置开启POP3/SMTP服务,具体设置方法是点击“设置”,下拉到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务” 项,点击“POP3/SMTP服务”右方的“开启按钮”,按照提示发送短信,然后点击“已发送”,生成随机码,将随机码拷贝,配置到spring.mail.password中。
spring.mail.username=1796608443@qq.com
spring.mail.password=izzrhhcusjfibfab
spring.mail.host=smtp.qq.com
spring.mail.properties.mail.smtp.ssl.enable=true
3.使用JavaMailSenderImpl对象发送邮件。
SimpleMailMessage message=new SimpleMailMessage();
//设置邮件主体
message.setSubject("通知-这是一个SpringBoot的测试邮件");
//设置邮件内容
message.setText("Hello JavaMail!");
//设置接收人邮箱
message.setTo("2374812290@qq.com");
//设置发送人邮箱(需要进入QQ邮箱开启POP3/SMTP服务 )
message.setFrom("1796608443@qq.com");
mailSender.send(message);
4.如果想发送带附件的邮件,则需要使用MimeMessageHelper对象。
//创建一个复杂的消息邮件
MimeMessage mimeMessage=mailSender.createMimeMessage();
MimeMessageHelper helper=new MimeMessageHelper(mimeMessage,true);
//邮件设置
helper.setSubject("通知-这是一个带附件的测试邮件");
helper.setText("<b style='color:red'>看到附件没?</b>",true);
//设置接收人邮箱
helper.setTo("2374812290@qq.com");
//设置发送人邮箱(需要进入QQ邮箱开启POP3/SMTP服务 )
helper.setFrom("1796608443@qq.com");
//上传文件
helper.addAttachment("图1",new File("C:\\Users\\Administrator\\Desktop\\起点封面素材\\微信图片_20190704092554.jpg"));
helper.addAttachment("图2",new File("C:\\Users\\Administrator\\Desktop\\起点封面素材\\微信图片_20190704092612.jpg"));
mailSender.send(mimeMessage);
另外,异步任务和定时任务SpringBoot已经帮我们内置了,如果想要使用它们的话只需要在相应类中添加相关注解即可。
异步任务
1.在启动类上方添加@EnableAsync注解开启异步任务。
2.在方法上方添加@Async注解标注该方法为异步方法。
定时任务
1.在启动类上方添加@EnableScheduling注解开启基于异步的定时任务。
2.在方法上方添加@Scheduled(cron='')注解标注该方法为定时任务方法,注解中可定义cron表达式规则,cron属性中包含6个参数,分别表示秒、分钟、小时、日期、月份、星期,每个参数之间以空格隔开。详细的表达式规则见下图:
网友评论