SpringBoot实现 内置 定时 发送邮件功能
前段时间因为公司用了定时任务,所以写了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实现 内置 定时 发送邮件功能相关推荐
- python定时发送邮件_Python3实现带附件的定时发送邮件功能
本文实例为大家分享了Python3定时发送邮件功能的具体代码,供大家参考,具体内容如下 1. 导入模块 import os import datetime #定时发送,以及日期 import shut ...
- flyme7 android彩蛋,Flyme 7内置彩蛋功能:520教你如何脱颖而出
原标题:Flyme 7内置彩蛋功能:520教你如何脱颖而出 5月20日是一个特殊的日子,逐渐演变为"网络情人节",或许有一部分单身伙伴们会遭到暴击伤害,估计朋友圈会被大捧的玫瑰花刷 ...
- Photoshop 2023 Beta 内置Ai绘图功能介绍安装教程
距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年,最近该公司又再次书写了属于Photoshop的历史新篇章. 最近,Adobe 宣布 Photoshop ...
- ARUBA无线控制器内置网管功能介绍
ARUBA无线控制器内置网管功能介绍 ARUBA无线控制器内置了业界最为丰富的无线网络管理功能,用户不需要增加任何额外费用就可以实现以下功能: l 图形化的无线网络集中配置 l 图形化的网络实时性能监 ...
- 玩转代码|解决Chrome浏览器内置谷歌翻译功能无法使用问题!
最近这几天在使用Chrome浏览器的内置谷歌翻译功能时,总是一直停留在不翻译的状态,一开始我还以为是网络波动过几天就好了,过了好几天依旧是这样.去看了新闻才知道谷歌翻译已经退出了中国市场. 根据Tec ...
- 苹果屏幕录制5831_苹果怎么录屏幕视频?教你轻松开启内置录屏功能
苹果怎么录屏幕视频?随着iPhone功能的不断更新换代,iOS系统也早已提供了内置的录屏功能,不过很多小伙伴不清楚怎么使用苹果手机的录屏功能,你还在使用第三方的录屏软件吗?苹果手机升级到iOS 11以 ...
- 极客日报:吉利回应收购魅族手机传闻;苹果要求App必须内置账号删除功能;英特尔斥资千亿美元打造全球最大芯片基地
一分钟速览新闻点! 吉利回应收购魅族手机传闻 泰国AreuOK队赢得华为科技挑战赛金奖 华为2022年第一位天才少年诞生 微信支付推出虎年限量红包封面,"虎豆妞"送祝福 有赞回应裁 ...
- 苹果怎么录屏幕视频?教你轻松开启内置录屏功能
苹果怎么录屏幕视频?随着iPhone功能的不断更新换代,iOS系统也早已提供了内置的录屏功能,不过很多小伙伴不清楚怎么使用苹果手机的录屏功能,你还在使用第三方的录屏软件吗?苹果手机升级到iOS 11以 ...
- EMC对策产品:TDK扩大了内置ESD保护功能的陷波滤波器阵容
EMC对策产品:TDK扩大了内置ESD保护功能的陷波滤波器阵容 新的陷波滤波器同时实现了ESD保护和最大频率为5.3 GHz频段噪声抑制 抑制无线通信中产生的TDMA噪声,提高无线信号接收灵敏度 强大 ...
最新文章
- Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
- 隐式类型转换和整型提升
- 对 SAP UI5 一无所知的新手,从哪些材料开始学习比较好?
- Java应用集群下的定时任务处理方案(mysql)
- Android应用检查更新下载安装打开
- 卧槽,又来一个Windows神器!!!
- 【英语学习】【Level 07】U01 Making friends L4 Meet your new colleague
- 【转】URL和URI的区别
- 语言栈十进制转十六进制_十进制数转二进制、八进制、十六进制等任意进制_C语言「抄作业」...
- ARPG游戏打击感相关的技术简单总结
- HTML标签margin和padding的默认属性值
- NSSM 制作 window 服务
- html调取android手机录音并保存,html5网页录音插件Recorder
- 虚拟机安装黑苹果mac 10.12系统安装教程
- HTML中<a></a>标签的四大功能 必看!必看!!必看!!!
- python中iter_深入了解Python iter() 方法的用法
- Postman教程-Send Requests相关的基本操作
- Javascript小练习——班级学号点名器
- 《MFC如何添加子对话框》
- 【分屏】2秒钟实现 Windows窗口多分屏的进阶技巧