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 password: cvaflkvougrvcijd username: 3541434135&#64;qq.comdefault-encoding: UTF-8
2.3 启动类添加&#64;EnableScheduling注解
package com.bjopwernode;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;&#64;EnableScheduling
&#64;SpringBootApplication
public class SpringbootTimedtaskMixMailsendingApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTimedtaskMixMailsendingApplication.class, args);}}
2.4 执行的任务类&#xff08;发送基本内容&#xff09;
在基础包下新建一个task目录&#xff0c;里面新建一个类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;&#64;Component
public class MyTask {&#64;Autowiredprivate JavaMailSender javaMailSender;/*** 发送基本内容*/&#64;Scheduled(cron &#61; "0/3 * * * * ?")public void testSendSimpleMailMessage(){SimpleMailMessage simpleMailMessage &#61; new SimpleMailMessage();//发件人邮箱simpleMailMessage.setFrom("3541434135&#64;qq.com");//收件人邮箱simpleMailMessage.setTo("601081254&#64;qq.com");//邮件主题simpleMailMessage.setSubject("这是一个测试邮件");//邮件内容simpleMailMessage.setText("测试内容");javaMailSender.send(simpleMailMessage);}
}