标签:在线生成 简洁 send 表达 ctas cut 配置邮件 分析 励志
简单的实现,在做具体业务时具体分析
1.在springboot的启动类上加
2.在业务层实现异步的具体方法,
结束~,一个简单的异步任务demo实现啦~
1,导入依赖
<!--邮件任务依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2.在peoperties或yaml配置邮件任务驱动的相关信息
注意:拿qq邮件举例,在写代码前需取自己的qq邮箱开通smtp服务
spring.mail.username=3342239623@qq.com
spring.mail.password=zxmutdmcxrmgdafj
spring.mail.host=smtp.qq.com
#开启加密验证,只有qq的邮箱必须开启ssl,其他大厂邮箱不需要
spring.mail.properties.mail.smtp.ssl.enable=true
3.邮件任务简单的实现
3.1简单邮件发送的实现
class Springboot09TestApplicationTests { @Autowired JavaMailSender mailSender; @Test void contextLoads() { //一个简单的邮件任务测试 SimpleMailMessage mailMessage=new SimpleMailMessage(); mailMessage.setSubject("帅哥,您好"); mailMessage.setText("励志做一个java全干工程师,来自另一个帅哥给您发送的邮件"); mailMessage.setTo("xxxxx@qq.com"); mailMessage.setFrom("xxxxx@qq.com"); mailSender.send(mailMessage); }
3.2复杂邮件格式信息发送实现
可以自定义发送文本格式(图片视频),也可以设置样式
@Test void contextLoads2() throws MessagingException { //一个复杂的邮件任务测试 MimeMessage mimeMessage = mailSender.createMimeMessage(); //组装 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); //正文 helper.setSubject("帅哥,您好"); helper.setText("<h1 style=‘color:red‘>您有一张图片请查收</h1>",true); //附件 helper.addAttachment("1.jpg",new File("相对路径or绝对路径")); helper.setTo("xxxxxx@qq.com"); helper.setFrom("xxxxxx@qq.com"); mailSender.send(mimeMessage); }
扩展:邮件任务是业务开发中比较常见的,所以可以将他封装成一个工具类,以便于以后的使用
简单的邮件任务工具类
/** * * @param html * @param subject * @throws MessagingException * @Author king~ */ //自定义封装成一个工具类 public void sedMail(Boolean html,String subject) throws MessagingException { //一个复杂的邮件任务测试 MimeMessage mimeMessage = mailSender.createMimeMessage(); //组装 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,html); //正文 helper.setSubject(subject); helper.setText("<h1 style=‘color:red‘>您有一张图片请查收</h1>",true); //附件 helper.addAttachment("1.jpg",new File("相对路径or绝对路径"));
helper.setTo("xxxxx@qq.com"); helper.setFrom("xxxx3@qq.com"); mailSender.send(mimeMessage); }
说明:最早是Timer,相信大家都已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法
特点:in JDK,简洁,单线程
但是因为他是单线程所以它是串行的,所以不能满足当前盛行的高并发的需求开发
因此出现了ScheduledExecutor;
此篇实现的就是基于ScheduledExecutor的;
相关注解:
实现:
1.在启动类标注 @EnableScheduling //开启定时任务
2.在业务层的定时任务相关方法上标注注解 @Scheduled(cron="0/2 * * * * ?") //表示什么时候执行
实现一个小demo,
功能:每两秒给特定邮箱发送垃圾邮件!实现邮件轰炸!
提示:请不要将合法手段用到不正当的地方
@Service public class ScheduledService { @Autowired JavaMailSender mailSender; //在一个固定的时间执行这个方法~ Timer //corn表达式! //格式:秒,分,时,日,月,周几~ 有在线生成工具 /* * 例子:30 15 10 * * ? 每天的10点15分30秒调度(执行)一次 * 30 0/5 10,18 * * ? 每天的18点和10点的30秒处,每隔5分钟执行一次 * 0 15 10 ? * 1-6 周一至周六的10.15分钟执行一次 * */ @Scheduled(cron="0/2 * * * * ?") public void hello(){ //一个简单的邮件任务测试 SimpleMailMessage mailMessage=new SimpleMailMessage(); mailMessage.setSubject("帅哥,您好"); mailMessage.setText("我是邮件轰炸机,您已被击中"); mailMessage.setTo("xxxxxxx@qq.com"); mailMessage.setFrom(xxxxxx@qq.com"); mailSender.send(mailMessage); System.out.println("hello,你被执行了~"); } }
AsyncTask,MailTask,ScheduledTask
标签:在线生成 简洁 send 表达 ctas cut 配置邮件 分析 励志
原文地址:https://www.cnblogs.com/CL-King/p/14288641.html