定时器的使用
邮件授权码的获取
(3条消息) SpringBoot 发送电子邮件_Nice2cu_Code的博客-优快云博客
依赖的引入
<!--邮件发送-->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
一、使用spring注解scheduled (简单,但没这么强大)
(3条消息) @Scheduled(cron = "* * * * * *") cron表达式详解_lzz_0128的博客-优快云博客_@scheduled cron
这个很简单,只需要一个配置类
package com.example.demo.config;
import com.example.demo.service.SendJunkMailService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @author xfgg
*/
@Component
@Configuration
@EnableScheduling
public class SendMailQuartz {
@Autowired
private SendJunkMailService sendJunkMailService;
/**
* 日志对象
*/
private static final Logger LOGGER = LogManager.getLogger(SendMailQuartz.class);
/**
* 整个17点,从28分30秒开始,每隔一分钟发一次
*/
@Scheduled(cron="*/1 * * * * *")
public void reportCurrentByCron(){
/**
* 发送邮件
*/
sendJunkMailService.sendJunkMail();
LOGGER.info("定时器运行了!");
System.out.println("定时器运行了!");
}
}
package com.example.demo.service.impl;
import com.example.demo.entity.User;
import com.example.demo.service.SendJunkMailService;
import com.example.demo.service.UserService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.List;
@Service
public class SendJunkMailServiceImpl implements SendJunkMailService {
@Autowired
JavaMailSender mailSender;
@Resource
private UserService userService;
@Value("${spring.mail.username}")
private String from;
public static final Logger LOGGER = LogManager.getLogger(SendJunkMailServiceImpl.class);
@Override
public boolean sendJunkMail() {
try {
MimeMessage mimeMessage=this.mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
/**
* 邮件发送发
*/
messageHelper.setFrom(from);
/**
* 邮件主题
*/
messageHelper.setSubject("你是傻子");
/**
* 邮件接收方
*/
messageHelper.setTo("");
/**
* 邮件内容
*/
messageHelper.setText("你知道吗,你是傻子");
/**
* 发送邮件
*/
this.mailSender.send(mimeMessage);
}
} catch (MessagingException e) {
e.printStackTrace();
return Boolean.FALSE;
}
return Boolean.TRUE;
}
}
package com.example.webdemo.service;
import java.util.List;
public interface SendJunkMailService {
boolean sendJunkMail();
}
在yml 上 做一些简单配置。
spring:
mail:
host: smtp.163.com
username: 你的账号
password: 你的授权码
default-encoding: UTF-8
properties:
mail:
smtp:
auth: true
ssl:
enble: true
port: 465
protocol: smtps