博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
磁盘文件监控(Java)并发送邮件通知、系统定期执行的办法
阅读量:5238 次
发布时间:2019-06-14

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

 

以下是通过xml文件进行的监控路径、文件以及邮件信息的配置,读取xml文件使用的是三方jar包:dom4j

收发邮件采用的是最普通的javamail,需要两个jar包,mail.jar和activition.jar

关键代码如下:

public boolean sendHtmlMail(MailSenderInfo mailInfo){

// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
//如果需要身份认证,则创建一个密码验证器
if (mailInfo.isValidate()) {
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
sendMailSession.setDebug(true);
sendMailSession.setDebugOut(System.out);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容
mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch (MessagingException ex) {
ex.printStackTrace();
}
return false;
}

这边还想说的一点是,mb,kb和字节之间的转换,获取文件长度(file.length)之后得到的是long型的字节数,1mb=1024kb,1kb=1024b,最好用这样的写法:

BigDecimal megabyte = new BigDecimal(1024 * 1024);

float returnValue = filesize.divide(megabyte, 2, BigDecimal.ROUND_UP) .floatValue();

精度更准确!

关于打成jar包和定时运行的办法:

由于用到了三个额外的jar包,所有打包方法如下:

第一步:

第二步:

第三步:选择自己的工程,存放路径,选择加入jar包,完成

 

注意:

打好的jar包一般没有入口程序,需自行设置,这边不多赘述

定时运行需要用到系统自带的计划任务:

 

这边有个创建基本任务和创建任务,选择创建任务。这里说一下两个的区别,创建任务是自定义的任务,可以循环执行,也可以执行完就结束。基本任务是系统启动时一起执行的任务,只有当系统关闭时才会销毁。

这边创建任务也不多赘述了,比较简单,需要注意的是:jar包不可直接运行,需要利用bat文件通过    jar -jar 包名 参数【参数。。】的方式执行,所以任务里面的操作执行的是bat文件而不是jar包

 

转载于:https://www.cnblogs.com/timePasser-leoli/p/7300291.html

你可能感兴趣的文章
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>