磁盘文件监控(Java)并发送邮件通知、系统定期执行的办法
以下是通过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包
最新文章
- java中静态方法和静态类的学习
- Android 2D Graphics学习 Region和Canvas裁剪
- sea.js 入门
- Sql Server中不常用的表运算符之APPLY(2)
- 炉石传说 C# 开发笔记(BS模式Demo)
- lua日期与时间操作
- 转:PHP--获取响应头(Response Header)方法
- python实现curl功能
- [moka收藏]php正则表达式验证
- .NET Entity Framework入门简介及简单操作
- ni
- javascript 小计
- linux监控脚本
- js获取随机颜色
- Spring Boot 系列教程6-全局异常处理
- PHP的CI框架流程基本熟悉
- C++_day06_运算符重载_智能指针
- python opencv SIFT,获取特征点的坐标位置
- C#种将String类型转换成int型
- underscore.js源码研究(3)
热门文章
- .NET 在信创常用软件适配清单之中?
- MySQL DDL详情揭露
- Linux后台执行命令:&;和nohup nohup和&;后台运行,进程查看及终止
- Docker Swarm(十一)生产环境使用的一些建议
- 034.Python的__str__,__repr__,__bool__ ,__add__和__len__魔术方法
- IT菜鸟之交换机基础配置
- 国外DIY网站
- Servlet中的过滤器和监听器
- go输出九九乘法表和金字塔
- HTML中option的单页调用