10 定时任务:邮件发送

定时任务实现的几种方式:

1.Timer是java自带的java.util.Timer类,这个类允许你调度
2.ScheduledExecutorService:
3.Spring Task
添加依赖
创建任务类
4.Quartz
添加依赖
创建配置类

使用Spring Task方法使用邮件来完成定时发送
后台管理系统开发:

1.首先配置QQ邮箱->设置->账户->开启服务POP3/SMTP开启->获取授权码
2.添加pom.xml依赖

dependency>
   org.springframework.boot
   spring-boot-starter-mail


3.配置application.properties

spring.mail.host=smtp.qq.com
[email protected]
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

4.写Service接口

    /**
     * 发送简单邮件
     */
    void sendMail(String to,String subject,String content);
}

5.实现接口

@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("[email protected]");//发起者
        mailMessage.setTo(to);//接受者
        mailMessage.setSubject(subject);
        mailMessage.setText(content);
        try {
            mailSender.send(mailMessage);
            System.out.println("发送简单邮件");
        }catch (Exception e){
            System.out.println("发送简单邮件失败");
        }
    }
    }

6.写定时任务:每天9点发送一份电子邮件

@Service
//@Async
public class TaskService {
    @Autowired
    private MailService mailService;

    @Scheduled(cron = "0 0 9 ? * *")
    public void proces(){
        mailService.sendMail("[email protected]","简单邮件","lalalalalalalaal");
        System.out.println("111");
    }
  }

时间可以修改(https://www.cnblogs.com/linjiqin/archive/2013/07/08/3178452.html)

注意:有时候会报错找不到mailSender

解决的方法是:添加一个依赖包


            javax.mail
            mail
            1.4.7
        ```

你可能感兴趣的:(10 定时任务:邮件发送)