SpringBoot项目中,如何快速的做一个邮件任务

SpringBoot项目中,如何快速的做一个邮件任务

1.首先创建一个springboot项目

提示:选择的java版本不要太高

在这里插入图片描述

我这里选择了Spring Web

在这里插入图片描述


2.引入相关依赖

只需要引入这一个依赖即可

 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-mail</artifactId>
 </dependency>

3.分析源码

1.首先我们引入的依赖,按照名字找到mail自动配置名——MailSenderAutoConfiguration

可参考SpringBoot自动配置原理

在这里插入图片描述

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.启动,访问,成功接受到邮件

在这里插入图片描述
收到邮件

在这里插入图片描述

这就是邮件任务功能喽;参考


希望可以帮助到您

~感谢您的光临~

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_50762431/article/details/129359120