springboot整合定时器实现定时发送邮件

1.创建springboot项目:

编写定时器,可以看下:springboot实现定时器

编写邮件服务类:可以看下:springboot发送邮件(1):发送简单邮件

2.启动类启用定时:

/**
 * 启动类
 */
@SpringBootApplication
//开启定时
@EnableScheduling
public class Application {

   public static void main(String[] args) {
      SpringApplication.run(Application.class, args);
   }

}

3.主要业务代码:

/**
 * 定时任务类,实现定时发送邮件
 * Created by ASUS on 2018/5/6
 *
 * @Authod Grey Wolf
 */
//要声明为bean,没有声明启动类启动无法实现定时效果
@Component
public class SchedulerTask {

    @Autowired
    private MailService mailService;

    @Value("${mail.fromMail.addr}")
    private String form;

    private int count=1;

    /**
     * 表示每隔6秒发送一次邮件
     */
    @Scheduled(cron = "*/6 * * * * ?")
    private void proces(){
        String content="springboot整合定时器实现定时邮件发送,这是第"+(count++)+"封邮件";
        mailService.sendMail(form,"简单邮件",content);
        System.out.println("发送定时邮件成功");
    }
}

邮件服务类:

/**
 *
 * 邮件服务类
 * Created by ASUS on 2018/5/5
 *
 * @Authod Grey Wolf
 */

@Service("mailService")
public class MailServiceImpl implements MailService {

    @Autowired
    private JavaMailSender mailSender;

    @Value("${mail.fromMail.addr}")
    private String form;
    /**
     * 发送简单邮件
     * @param to 接受者
     * @param subject 主题
     * @param content 内容
     */
    @Override
    public void sendMail(String to, String subject, String content) {
        SimpleMailMessage mailMessage=new SimpleMailMessage();
        mailMessage.setFrom(form);
        mailMessage.setTo(to);
        mailMessage.setSubject(subject);
        mailMessage.setText(content);
        try {
            mailSender.send(mailMessage);
//            System.out.println("发送简单邮件");
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("发送简单邮件失败");
        }
    }



}

4.run启动类application.class,测试效果:


注:有可能邮件会发送失败的原因:邮件发送过于频繁,网络异常等。



我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。



猜你喜欢

转载自blog.csdn.net/weixin_39220472/article/details/80213276
今日推荐