首先添加hutool依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.1</version>
</dependency>
再加入发送邮件的依赖:
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
后端代码:
@Override
public void sendMail() {
//未填写日报的用户
List<User> user = userMapper.getUserAll();
List<String> userEmail = new ArrayList<>();
for (User user1 : user) {
if (!dailyService.dailyDateVerification(new SimpleDateFormat("yyyy-MM-dd").format(new Date()),user1.getUserId())){
userEmail.add(user1.getEmail());
}
}
MailAccount account = new MailAccount();
account.setHost("smtp.163.com");
account.setPort(25);
account.setAuth(true);
account.setFrom("邮箱名称");//邮箱名称
account.setUser("邮箱名称");//邮箱名称
account.setPass("OQDEOUXGNXDJJXAM"); //授权码
MailUtil.send(account, CollUtil.newArrayList(userEmail), "日报", new SimpleDateFormat("yyyy-MM-dd").format(new Date())+"日报未填写", false);
}
授权码去邮箱里边设置
详情可以去hutool官网了解
下边是定时启动:
/**
* 测试定时任务
*
*/
@Configuration
@EnableScheduling
public class TestTask {
private final UserService userService;
private static final Logger logger = LoggerFactory.getLogger(TestTask.class);
public TestTask(UserService userService) {
this.userService = userService;
}
// @Scheduled(cron = "0/5 * * * * ?")
// //或直接指定时间间隔,例如:5秒
// //@Scheduled(fixedRate=5000)
// private void configureTasks() {
// System.err.println("执行静态定时任务时间: " + LocalDateTime.now());
// }
@Scheduled(cron = "0 0 22 ? * MON-FRI")
@Async
public void synSysVidMonitoringPoint() {
logger.info("***********正在执行日报定时提示任务****************");
userService.sendMail();
}
}
我这个是设定每天周一至周五晚上10点自动执行一次