Quartz定时任务实现自动发送邮件

一、Quartz简介

QuartzOpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EEJ2SE应用程序相结合也可以单独使用。

Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或EJBs

Quartz的最新版本为Quartz 2.2.3


二、Quartz自动发送邮件案例

第一步:在pom.xml中引入quartzJavaMail的依赖

 

 
        
            org.quartz-scheduler
            quartz
            2.2.3
        
        
            org.quartz-scheduler
            quartz-jobs
            2.2.3
        
        
        
            javax.mail
            mail
            1.4
        


第二步:提供一个作业类,提供发邮件的方法

public class MailJob{
       public void execute() {
		System.out.println("要发邮件了。。。" + new Date());
		try {
			
			List list = workbillDao.findAll();
			if(null != list && list.size() > 0){
				final Properties mailProps = new Properties();
				mailProps.put("mail.smtp.host", this.getSmtpServer());
				mailProps.put("mail.smtp.auth", "true");
				mailProps.put("mail.username", this.getUsername());
				mailProps.put("mail.password", this.getPassword());

				// 构建授权信息,用于进行SMTP进行身份验证
				Authenticator authenticator = new Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						// 用户名、密码
						String userName = mailProps.getProperty("mail.username");
						String password = mailProps.getProperty("mail.password");
						return new PasswordAuthentication(userName, password);
					}
				};
				// 使用环境属性和授权信息,创建邮件会话
				Session mailSession = Session.getInstance(mailProps, authenticator);
				for(Workbill workbill : list){
					// 创建邮件消息
					MimeMessage message = new MimeMessage(mailSession);
					// 设置发件人
					InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));
					message.setFrom(from);
					// 设置收件人
					InternetAddress to = new InternetAddress("[email protected]");
					message.setRecipient(RecipientType.TO, to);
					// 设置邮件标题
					message.setSubject("系统邮件:新单通知");
					// 设置邮件的内容体
					message.setContent(workbill.toString(), "text/html;charset=UTF-8");
					// 发送邮件
					Transport.send(message);
				}
			}
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}

第三步:spring配置文件中配置

 

    

  

    

       

       

       

       

    


  

  

     

     

     

     

       0/5 * * * * ?

     

 


  

  

      

      

          

              

         

       



铸剑团队签名:

【总监】十二春秋之,[email protected]

【Master】戈稻不苍,[email protected]

【Java开发】雨鸶,[email protected];思齐骏惠,[email protected]小王子,[email protected];巡山小钻风,[email protected]

【VS开发】豆点,[email protected]

【系统测试】土镜问道,[email protected];尘子与自由,[email protected]

【大数据】沙漠绿洲,[email protected];张三省,[email protected]

【网络】夜孤星,[email protected]

【系统运营】三石头,[email protected];平凡怪咖,[email protected]

【容灾备份】秋天的雨,[email protected]

【安全】保密,你懂的。

原创作者:小王子

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。





你可能感兴趣的:(后端开发)