美文网首页
5. 邮件定时发送

5. 邮件定时发送

作者: 叶小慈呀 | 来源:发表于2019-04-17 18:51 被阅读0次

    1.生活中的定时任务

    • 定时推送,签到
    • QQ定时发说说邮件
    • 蚂蚁森林定时产生能量。微信公众号不步数的更新
    • 手机定时开关机
    • 等等..........

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

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

    3.课堂实例

     > 使用Spring Task方法使用邮件来完成定时发送
    
    • 首先配置QQ邮箱->设置->账户->开启服务POP3/SMTP开启->获取授权码


      qq邮箱设置
    • 添加pom依赖
    dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
    • 配置application.properties
    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
    
    
    • 写Service接口
        /**
         * 发送简单邮件
         */
        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("发送简单邮件失败");
            }
        }
        }
    
    • 写定时任务:每天9点发送一份电子邮件
    @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表达式

    相关文章

      网友评论

          本文标题:5. 邮件定时发送

          本文链接:https://www.haomeiwen.com/subject/raqowqtx.html