SpringBoot项目中,如何快速的做一个邮件任务
1.首先创建一个springboot项目
提示:选择的java版本不要太高
我这里选择了Spring Web
2.引入相关依赖
只需要引入这一个依赖即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
3.分析源码
1.首先我们引入的依赖,按照名字找到mail自动配置名——MailSenderAutoConfiguration
2.进来以后我们看到MailProperties.class,钻取进去,找到要求配置的内容
3.看到需要配置主机名,用户名,密码等
4.返回到上一层,钻取MailSenderJndiConfiguration
会发现有一个“邮件发送实现类”,我们调取它即可
4.获取邮箱码
这里使用的qq邮箱
1.打开qq邮箱,点击设置——选择账户——点击第一个服务开启
2.点击开启后让发送短信,然后得到授权码
3.将授权码复制粘贴到配置文件里的spring.mail.password= 中,如第5点
5.配置内容
这里使用的是application.properties
#邮箱地址
spring.mail.username=2787567683@qq.com
#邮箱密码(授权码自行获取)
spring.mail.password=gsfqpsmmuwnfdhce
#主机名
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true
6.编写代码
这里我将发送邮件的功能封装为一个工具类
1.编写ToolUtil
/**
* @Author liuyun
* @Date 2023/3/6 11:16
* @Version 1.0
* 发送邮件工具类
*/
@Configuration//申明该配置
public class ToolUtil {
//引入邮件发送实现类
@Autowired
JavaMailSenderImpl javaMailSender;
/**
*
* @param html:是否支持多文本上传
* @param subject:邮件标题
* @param text:邮件主要内容
* @param jpg:附件
* @param jpgWay:附件路径
* @param from:发件人邮箱地址
* @param to:收件人邮箱地址
* @throws MessagingException
* 发送邮件
*/
public void sendMail(Boolean html, String subject, String text, List<String> jpg, List<String> jpgWay, String from, String to) throws MessagingException {
//一个复杂的邮件
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//组装
MimeMessageHelper mailMessage = new MimeMessageHelper(mimeMessage,html);
//正文
mailMessage.setSubject(subject);
mailMessage.setText(text);
//附件,遍历得到的附件内容
for (int i = 0; i < jpg.size(); i++) {
for (int j = 0; j < jpgWay.size(); j++) {
if (i==j){
mailMessage.addAttachment(jpg.get(i),new File(jpgWay.get(i)));
}
}
}
mailMessage.setFrom(from);
mailMessage.setTo(to);
javaMailSender.send(mimeMessage);
}
}
2.调取方法
@RequestMapping("/mailSend")
public String mailSend() throws MessagingException {
//邮件标题
String subject = "入职申请";
//邮件内容
String text = "我申请入职腾讯高管";
//发件人邮箱地址
String from = "[email protected]";
//收件人邮箱地址
String to = "[email protected]";
//附件内容
List<String> jpgs = new ArrayList<>();
jpgs.add("7.png");
jpgs.add("q.jpeg");
//附件路径
List<String> jpgWays = new ArrayList<>();
jpgWays.add("C:\\Users\\internet\\Desktop\\folder\\7.png");
jpgWays.add("C:\\Users\\internet\\Desktop\\folder\\q.jpeg");
//调取方法,将内容传进去
toolUtil.sendMail(true,subject,text,jpgs,jpgWays,from,to);
return "Success";
}
7.启动,访问,成功接受到邮件
收到邮件
这就是邮件任务功能喽;参考
希望可以帮助到您