前段时间因为公司用了定时任务,所以写了2篇定时任务的文章,一篇是正常如何在Springboot 编程中如何去使用quartz ,第二篇就是 正常业务性的增删改查,今天我们来看下如何使用 quartz 去定时给女朋友发邮件 ,结尾会放上完整代码

  • Springboot 在Java使用 定时任务
  • Springboot 使用quartz CRUD

首先你是不是要发邮件,那你就需要用到Springboot 整合邮件 ,导入下面三个依赖,当然如果你还想把给女朋友发的邮件存数据库 你还要加一个 MyBATIS 和 Mysql

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>com.sun.mail</groupId><artifactId>jakarta.mail</artifactId><version>1.6.4</version><scope>compile</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>RELEASE</version><scope>compile</scope></dependency>

我们导入好依赖之后

配置授权码

接下来需要配置一下 yam

# 配置你发邮件的 账号
spring.mail.username=2509919428@qq.com
# 注意 这里不是密码 ,是授权码
spring.mail.password=oqkesvkbzromecje
spring.mail.host=smtp.qq.com#开启加密规则
spring.mail.properties.mail.smtp.ssl.enable=true

spring.mail.password 上面的 这一项不是密码 是授权码
这里我们以QQ邮箱为例 ,你需要得到一个 授权码



然后咱们发送邮件之后, 就可以了

配置任务

要使用定时任务,我们就需要定义任务 ,不懂的小伙伴可以去看我之前的文章,这里我们简单搞下


import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.Date;@Slf4j
@Component
public class MailConfig {@AutowiredJavaMailSenderImpl javaMailSender;@Scheduled(cron = "0/7 * * * * ?")@Beanpublic void loadBean() throws MessagingException {log.info("测试发送 邮件 ---------》 " + new Date());MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);helper.setSubject("hello byc");helper.setText("<b style='color:red'>测试一个复杂邮件</b>", true);helper.addAttachment("1.jpg", new File("D:\\Computer\\图片\\Snipaste_2023-02-11_14-47-17.png"));helper.setTo("2509919428@qq.com");helper.setFrom("2509919428@qq.com");javaMailSender.send(mimeMessage);}
}

由于我们之前导入了依赖,所以可以直接用 MimeMessage 去发送邮件 ,上面的

  • @Scheduled(cron = "0/7 * * * * ?") 这就是核心,我们标注了这个注解就相当于 这个方法可以定时发送

MimeMessageHelper : 这个是发送邮件的复杂对象,我们可以看到 下面定义了 发送的内容 以及 发送的字体颜色, 还有图片 ,我们可以看到

  • 格式
/*** 在特定的时间执行* cron表达式* (1)0/2 * * * * ?   表示每2秒 执行任务* (1)0 0/2 * * * ?   表示每2分钟 执行任务* (1)0 0 2 1 * ?   表示在每月的1日的凌晨2点调整任务* (2)0 15 10 ? * MON-FRI   表示周一到周五每天上午10:15执行作业* (3)0 15 10 ? 6L 2002-2006   表示2002-2006年的每个月的最后一个星期五上午10:15执行作* (4)0 0 10,14,16 * * ?   每天上午10点,下午2点,4点* (5)0 0/30 9-17 * * ?   朝九晚五工作时间内每半小时* (6)0 0 12 ? * WED   表示每个星期三中午12点* (7)0 0 12 * * ?   每天中午12点触发* (8)0 15 10 ? * *   每天上午10:15触发* (9)0 15 10 * * ?     每天上午10:15触发* (10)0 15 10 * * ?   每天上午10:15触发* (11)0 15 10 * * ? 2005   2005年的每天上午10:15触发* (12)0 * 14 * * ?     在每天下午2点到下午2:59期间的每1分钟触发* (13)0 0/5 14 * * ?   在每天下午2点到下午2:55期间的每5分钟触发* (14)0 0/5 14,18 * * ?     在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发* (15)0 0-5 14 * * ?   在每天下午2点到下午2:05期间的每1分钟触发* (16)0 10,44 14 ? 3 WED   每年三月的星期三的下午2:10和2:44触发* (17)0 15 10 ? * MON-FRI   周一至周五的上午10:15触发* (18)0 15 10 15 * ?   每月15日上午10:15触发* (19)0 15 10 L * ?   每月最后一日的上午10:15触发* (20)0 15 10 ? * 6L   每月的最后一个星期五上午10:15触发* (21)0 15 10 ? * 6L 2002-2005   2002年至2005年的每月的最后一个星期五上午10:15触发* (22)0 15 10 ? * 6#3   每月的第三个星期五上午10:15触发* */

接下来我们在Springboot 项目中加入注解

/*** 开启异步注解的功能* 开启定时任务的注解** @author 全栈小刘*/
@EnableScheduling
@EnableAsync
@SpringBootApplication
public class Demo4Application {public static void main(String[] args) {SpringApplication.run(Demo4Application.class, args);}}

完整项目结构 ,当然 你也加一套增删改查进去,例如输入谁的邮箱开启定时任务 ,这样就会比枯燥的代码有趣许多

源码地址

下载好代码之后记得修改授权码尝试一下

SpringBoot实现 内置 定时 发送邮件功能相关推荐

  1. python定时发送邮件_Python3实现带附件的定时发送邮件功能

    本文实例为大家分享了Python3定时发送邮件功能的具体代码,供大家参考,具体内容如下 1. 导入模块 import os import datetime #定时发送,以及日期 import shut ...

  2. flyme7 android彩蛋,Flyme 7内置彩蛋功能:520教你如何脱颖而出

    原标题:Flyme 7内置彩蛋功能:520教你如何脱颖而出 5月20日是一个特殊的日子,逐渐演变为"网络情人节",或许有一部分单身伙伴们会遭到暴击伤害,估计朋友圈会被大捧的玫瑰花刷 ...

  3. Photoshop 2023 Beta 内置Ai绘图功能介绍安装教程

    距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年,最近该公司又再次书写了属于Photoshop的历史新篇章. 最近,Adobe 宣布 Photoshop ...

  4. ARUBA无线控制器内置网管功能介绍

    ARUBA无线控制器内置网管功能介绍 ARUBA无线控制器内置了业界最为丰富的无线网络管理功能,用户不需要增加任何额外费用就可以实现以下功能: l 图形化的无线网络集中配置 l 图形化的网络实时性能监 ...

  5. 玩转代码|解决Chrome浏览器内置谷歌翻译功能无法使用问题!

    最近这几天在使用Chrome浏览器的内置谷歌翻译功能时,总是一直停留在不翻译的状态,一开始我还以为是网络波动过几天就好了,过了好几天依旧是这样.去看了新闻才知道谷歌翻译已经退出了中国市场. 根据Tec ...

  6. 苹果屏幕录制5831_苹果怎么录屏幕视频?教你轻松开启内置录屏功能

    苹果怎么录屏幕视频?随着iPhone功能的不断更新换代,iOS系统也早已提供了内置的录屏功能,不过很多小伙伴不清楚怎么使用苹果手机的录屏功能,你还在使用第三方的录屏软件吗?苹果手机升级到iOS 11以 ...

  7. 极客日报:吉利回应收购魅族手机传闻;​苹果要求App必须内置账号删除功能;英特尔斥资千亿美元打造全球最大芯片基地

    一分钟速览新闻点! 吉利回应收购魅族手机传闻 泰国AreuOK队赢得华为科技挑战赛金奖 华为2022年第一位天才少年诞生 微信支付推出虎年限量红包封面,"虎豆妞"送祝福 有赞回应裁 ...

  8. 苹果怎么录屏幕视频?教你轻松开启内置录屏功能

    苹果怎么录屏幕视频?随着iPhone功能的不断更新换代,iOS系统也早已提供了内置的录屏功能,不过很多小伙伴不清楚怎么使用苹果手机的录屏功能,你还在使用第三方的录屏软件吗?苹果手机升级到iOS 11以 ...

  9. EMC对策产品:TDK扩大了内置ESD保护功能的陷波滤波器阵容

    EMC对策产品:TDK扩大了内置ESD保护功能的陷波滤波器阵容 新的陷波滤波器同时实现了ESD保护和最大频率为5.3 GHz频段噪声抑制 抑制无线通信中产生的TDMA噪声,提高无线信号接收灵敏度 强大 ...

最新文章

  1. Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
  2. 隐式类型转换和整型提升
  3. 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
  4. Java应用集群下的定时任务处理方案(mysql)
  5. Android应用检查更新下载安装打开
  6. 卧槽,又来一个Windows神器!!!
  7. 【英语学习】【Level 07】U01 Making friends L4 Meet your new colleague
  8. 【转】URL和URI的区别
  9. 语言栈十进制转十六进制_十进制数转二进制、八进制、十六进制等任意进制_C语言「抄作业」...
  10. ARPG游戏打击感相关的技术简单总结
  11. HTML标签margin和padding的默认属性值
  12. NSSM 制作 window 服务
  13. html调取android手机录音并保存,html5网页录音插件Recorder
  14. 虚拟机安装黑苹果mac 10.12系统安装教程
  15. HTML中<a></a>标签的四大功能 必看!必看!!必看!!!
  16. python中iter_深入了解Python iter() 方法的用法
  17. Postman教程-Send Requests相关的基本操作
  18. Javascript小练习——班级学号点名器
  19. 《MFC如何添加子对话框》
  20. 【分屏】2秒钟实现 Windows窗口多分屏的进阶技巧

热门文章

  1. Delphi版俄罗斯方块-前奏
  2. 虚拟化的适用范围和适用场景,服务器虚拟化架构和功能
  3. cmd命令卸载ie9、10、11
  4. 自己弄了个数字币量化分析软件,感兴趣的朋友自己下载
  5. 容错服务器怎么装系统,容错服务器安装手册.doc
  6. 牛顿和莱布尼茨这两个冤家的共同烦恼
  7. DB Brower for Sqlite更新
  8. 小米网关接入Homekit完整教程
  9. Scala中拆分操作partition、grouped、groupBy和sliding函数
  10. 树莓4派开机动画_树莓派的 100 种玩法 2 - 树莓派 4 更新 EEPROM