定时器的使用

 定时器的使用

邮件授权码的获取

(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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值