5. 邮件定时发送

2019-04-17  本文已影响0人  叶小慈呀

1.生活中的定时任务

2.实现定时任务的几种方式

1.使用Timer
2.使用ScheduledExecutorService
3.使用Spring Task
4.整合Quartz

3.课堂实例

 > 使用Spring Task方法使用邮件来完成定时发送
dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
spring.mail.host=smtp.qq.com
spring.mail.username=1459816730@qq.com
spring.mail.password=gflxxutdklwogbba
spring.mail.default-encoding=UTF-8
##如果不加下面3句,会报530错误
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

    /**
     * 发送简单邮件
     */
    void sendMail(String to,String subject,String content);
}
@Service("mailService")
public class MailServiceImpl implements MailService {
    @Autowired
    private JavaMailSender mailSender;

    @Override
    public void sendMail(String to, String subject, String content) {
        SimpleMailMessage mailMessage=new SimpleMailMessage();
        mailMessage.setFrom("1062273622@qq.com");//发起者
        mailMessage.setTo(to);//接受者
        mailMessage.setSubject(subject);
        mailMessage.setText(content);
        try {
            mailSender.send(mailMessage);
            System.out.println("发送简单邮件");
        }catch (Exception e){
            System.out.println("发送简单邮件失败");
        }
    }
    }
@Service
//@Async
public class TaskService {
    @Autowired
    private MailService mailService;
    
    @Scheduled(cron = "0 0 9 ? * *")
    public void proces(){
        mailService.sendMail("815835155@qq.com","简单邮件","lalalalalalalaal");
        System.out.println("111");
    }
  }

注:关于时间的设置用的是cron表达式
cron表达式

上一篇 下一篇

猜你喜欢

热点阅读