Spring Boot实现邮件定时发送(STMP协议)

本文详细介绍了如何在Spring Boot项目中整合邮件发送功能,包括在pom.xml中添加spring-boot-starter-mail依赖,配置application.properties文件,开启STMP服务器,以及使用JavaMailSender发送邮件的步骤。同时,还提供了使用@Scheduled注解实现邮件定时发送的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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实现定时发送

  1. Cron 表达式是一个字符串,分为 6 或 7 个域,每一个域代表一个含义 Cron 有如下两种语法格式:
    (1) Seconds Minutes Hours Day Month Week Year
    (2)Seconds Minutes Hours Day Month Week
  2. 实例@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 点执行一次
  3.  @Scheduled(cron="0 0 1 * * *") // 每天一点发送邮件
        public void sendMail() {
            // doSomeThing
            // sendMailService
            // doSomeThing
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值