资源站建站技术公司互联网推广
SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
目录
- SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
 - 1.概述
 - 2.最佳实践
 - 2.1创建项目引入依赖(mail)
 - 2.2 修改yml配置文件
 - 2.3 启动类添加@EnableScheduling注解
 - 2.4 执行的任务类(发送基本内容)
 
我们使用java程序发送邮件,属于使用第三方客户端发送邮件
 使用第三方客户端发送邮件也需要先通过认证(登录):
 官方客户端认证: 用户名 密码
 第三方客户端的认证:用户名 授权码
 授权码需要通过发送短信开通指定功能时获取
1.概述
SpringBoot实现邮件功能是非常的方便快捷的,因为SpringBoot默认有starter实现了Mail。
 发送邮件应该是网站的必备功能之一,什么注册验证,忘记密码或者是给用户发送营销信息。
 最早期的时候我们会使用JavaMail相关api来写发送邮件的相关代码,后来spring推出了JavaMailSender更加简化了邮件发送的过程,在之后springboot对此进行了封装就有了现在的spring-boot-starter-mail。
2.最佳实践
先去qq邮箱设置smtp开启,并获得授权码
 邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得授权码

 
 
2.1创建项目引入依赖(mail)

 

 
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>
 
2.2 修改yml配置文件
spring:mail:host: smtp.qq.com  #配置服务器qq:smtp.qq.com,网易163:smtp.163.compassword: cvaflkvougrvcijd  #授权码,邮箱->设置->账户->POP3/SMTP服务:开启服务后会获得权码username: 3541434135@qq.comdefault-encoding: UTF-8
 
2.3 启动类添加@EnableScheduling注解

package com.bjopwernode;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;@EnableScheduling
@SpringBootApplication
public class SpringbootTimedtaskMixMailsendingApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTimedtaskMixMailsendingApplication.class, args);}} 
2.4 执行的任务类(发送基本内容)
在基础包下新建一个task目录,里面新建一个类MyTask.java
package com.bjopwernode.task;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;@Component
public class MyTask {@Autowiredprivate JavaMailSender javaMailSender;/*** 发送基本内容*/@Scheduled(cron = "0/3 * * * * ?")public  void testSendSimpleMailMessage(){SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//发件人邮箱simpleMailMessage.setFrom("3541434135@qq.com");//收件人邮箱simpleMailMessage.setTo("601081254@qq.com");//邮件主题simpleMailMessage.setSubject("这是一个测试邮件");//邮件内容simpleMailMessage.setText("测试内容");javaMailSender.send(simpleMailMessage);}
}