博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Quartz 定时邮件发送多个备份文件
阅读量:5875 次
发布时间:2019-06-19

本文共 6825 字,大约阅读时间需要 22 分钟。

项目代码

pom.xml 文件

Quartz 的包是整个项目不可缺少的

1 
2
3
4.0.6.RELEASE
4
5
2.2.1
6
7 8
9
10
junit
11
junit
12
3.8.1
13
test
14
15 16
17
javax.servlet
18
javax.servlet-api
19
3.0.1
20
21 22
23
24
javax.mail
25
mail
26
1.4
27
28 29
30
org.quartz-scheduler
31
quartz
32
${quartz.version}
33
34 35
36
37
org.springframework
38
spring-context-support
39
${springframework.version}
40
41 42
43
org.springframework
44
spring-tx
45
${springframework.version}
46
47 48
49
org.springframework
50
spring-web
51
${springframework.version}
52
53 54
55
org.springframework
56
spring-webmvc
57
${springframework.version}
58
59

MyJob.java 继承 QuartzJobBean 然后 Override

有钻研精神的可以一点一点扒代码看 QuartzJobBean 。

1 import org.quartz.JobExecutionContext;  2 import org.quartz.JobExecutionException;  3 import org.slf4j.Logger;  4 import org.slf4j.LoggerFactory;  5 import org.springframework.scheduling.quartz.QuartzJobBean;  6   7 import java.util.Date;  8   9 /** 10  * kzyuan Job 参考 11  * @description black husk 12  * @description http://www.bhusk.com 13  */ 14 public class MyJob extends QuartzJobBean { 15  16     private static Logger logger = LoggerFactory.getLogger(DatabaseBackupJob.class); 17  18     @Override 19     protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { 20  21         System.out.println("执行时间:"+new Date()); 22     } 23 }

application.xml 可以理解为 quartz 配置文件 注释很齐全

1 
2
10 11
12
13
14
15
16
17
18
19
20
21
22
23
24 25
26
27
28
29
30
31 32
33
34
35
36
37
38
39 40
41
42
43
44
45
46
47
48
49 50

JavaMail 发送邮件工具类

java 实现邮件的发送, 抄送及多附件
这个工具类来源网络,具体精准位置也不清楚了

1         // 设置发件人  2 //          mimeMsg.setFrom(new InternetAddress(from));  3             mimeMsg.setFrom(new InternetAddress(from, nick));  4             // 设置收件人  5             if (to != null && to.length() > 0) {  6                 mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));  7             }  8             // 设置抄送人  9             if (cc != null && cc.length() > 0) { 10                 mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc)); 11             } 12             // 设置主题 13             mimeMsg.setSubject(subject); 14             // 设置正文 15             BodyPart bp = new MimeBodyPart(); 16             bp.setContent(content, "text/html;charset=utf-8"); 17             mp.addBodyPart(bp); 18             // 设置附件 19             if (fileList != null && fileList.length > 0) { 20                 for (int i = 0; i < fileList.length; i++) { 21                     bp = new MimeBodyPart(); 22                     FileDataSource fds = new FileDataSource(fileList[i]); 23                     bp.setDataHandler(new DataHandler(fds)); 24                     bp.setFileName(MimeUtility.encodeText(fds.getName(), "UTF-8", "B")); 25                     mp.addBodyPart(bp); 26                 } 27             } 28             mimeMsg.setContent(mp); 29             mimeMsg.saveChanges(); 30             // 发送邮件 31             if (props.get("mail.smtp.auth").equals("true")) { 32                 Transport transport = session.getTransport("smtp"); 33                 transport.connect((String) props.get("mail.smtp.host"), (String) props.get("username"), (String) props.get("password")); 34                 transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients()); 35                 transport.close(); 36             } else { 37                 Transport.send(mimeMsg); 38             } 39             System.out.println("邮件发送成功"); 40         } catch (MessagingException e) { 41             e.printStackTrace(); 42             success = false; 43         } catch (UnsupportedEncodingException e) { 44             e.printStackTrace(); 45             success = false; 46         } 47         return success; 48     } 49  50     public String getMailList(String[] mailArray) { 51         StringBuffer toList = new StringBuffer(); 52         int length = mailArray.length; 53         if (mailArray != null && length < 2) { 54             toList.append(mailArray[0]); 55         } else { 56             for (int i = 0; i < length; i++) { 57                 toList.append(mailArray[i]); 58                 if (i != (length - 1)) { 59                     toList.append(","); 60                 } 61  62             } 63         } 64         return toList.toString(); 65     } 66  67     public static void main(String[] args) { 68         String from = username; 69         String[] to = {"keshu@bhusk.com", "1520812121@qq.com"}; 70         String[] copyto = {"lu12121@qq.com"}; 71         String subject = "黑壳网数据库备份"; 72         String content = "没有数据就没有一切,数据库备份就是一种防范灾难于未然的强力手段,没有了数据,应用再花哨也是镜中花水中月。"; 73         String[] fileList = new String[2]; 74         fileList[0] = "~/solo_h2/db.mv.db"; 75         fileList[1] = "~/solo_h2/db.trace.db"; 76  77         EmailManager.getInstance().sendMail(from, to, copyto, subject, content, fileList); 78     } 79 }

参考项目 GitHub:

转载地址:http://owkix.baihongyu.com/

你可能感兴趣的文章
MDK5.00中*** error 65: access violation at 0xFFFFFFFC : no 'write' permission的一种解决方法
查看>>
Android 集成支付宝支付详解
查看>>
SQL分布式查询、跨数据库查询
查看>>
C#------连接SQLServer和MySQL字符串
查看>>
Arcgis Licensemanager 不能启动的原因之一(转载)
查看>>
(原)Android在子线程用handler发送的消息,主线程是怎么loop到的?
查看>>
$digest already in progress 解决办法——续
查看>>
虚拟机 centos设置代理上网
查看>>
Struts2中Date日期转换的问题
查看>>
mysql 数据类型
查看>>
Ubuntu 设置当前用户sudo免密码
查看>>
设置tomcat远程debug
查看>>
android 电池(一):锂电池基本原理篇【转】
查看>>
Total Command 常用快捷键
查看>>
ionic 调用手机的打电话功能
查看>>
怎么使用阿里云直播服务应用到现在主流直播平台中
查看>>
Xcode全局替换内容,一键Replace
查看>>
1000 加密算法
查看>>
exif_imagetype() 函数在linux下的php中不存在
查看>>
Ruby的case语句
查看>>