12 集成定时器Quartz和邮件Email的发送

一、Quartz定时器

定时器Quartz是一个完全由Java编写的开源任务调度框架,通过触发器trigger设置作业定时运行规则、控制作业的运行时间。Quartz定时器能完成 定时发送信息、生成报表等一系列 规律性任务。

1.依赖引入

<!--集成定时任务-->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.3</version>
        </dependency>

2.定时器配置文件

创建定时器方法有俩种:一是使用XML配置文件的方式;二是使用注解方式,此处使用注解方式,因为简单。

创建定时器类,注意注解,@Configurable,相当于将该类编成XML配置文件,能别SpringBoot扫描初始化,

@EnableScheduling通过在配置类中注解来开启对对计划任务的支持,再在执行计划任务的方法上注解@Scheduled,声明这是一个计划任务

而注解中cro表达式写执行时机。

/**
 * @program: demo
 * @description: 发送邮件定时器
 * @author: wllmp520
 * @create: 2019-06-17 16:28
 */
@Component
@Configurable
@EnableScheduling
public class SendMailQuartz {
    @Autowired
    private SendJunkMailService sendJunkMailService;
    private static final Logger logger= LogManager.getLogger(SendMailQuartz.class);

    @Scheduled(cron = "*/5 * * * * *")
    public void sendEmailToHaiS(){
        sendJunkMailService.sendMail("10000@qq.com");
        logger.info("lz正在接收....");
    }
}

二、Email

邮件服务,免费,SpringBoot自动化配置好。

1、依赖引入

 <!--集成邮件Email-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2、配置文件配置参数,注意授权码是去邮箱开启获取的,可百度163邮箱获取授权码

#####Email配置=====================
#邮箱主机
spring.mail.host=smtp.163.com
##用户名
spring.mail.username=xxx@163.com
#设置授权码
spring.mail.password=password
##默认编码
spring.mail.default-encoding=UTF-8
spring.mail.properties.smtp.auth=true
spring.mail.properties.smtp.starttls.enable=true
spring.mail.properties.smtp.starttls.required=true

3.配置发送短信服务类,用到了JavaMailSender类,目前了解比较少,不多做阐述。

/**
 * @program: demo
 * @description: 邮件发送服务实现
 * @author: wllmp520
 * @create: 2019-06-17 16:59
 */
@Service
public class SendJunkMailServiceImpl implements SendJunkMailService {

    @Autowired
    JavaMailSender mailSender;

    @Value("${spring.mail.username}")
    private String from;

    private static final Logger logger= LoggerFactory.getLogger(SendJunkMailServiceImpl.class);
    @Override
    public boolean sendMail(String receive) {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
        try {
            message.setFrom(from);
            message.setSubject("比心心");
            message.setTo(receive);
            message.setText("富士X-A20\n" +
                    "\n" +
                    "不到两千元的价格对于一款微单相机来说还是非常超值的。富士X-A20不仅拥有更好的画质表现,同时在易用性上也值得称道,翻转触控屏幕和USB充电功能都是非常不错的。");
            this.mailSender.send(mimeMessage);
        } catch (MessagingException e) {
            e.printStackTrace();
            logger.error("sendMail error receiver=%s",receive,e);
            return false;
        }
        return true;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值