zoukankan      html  css  js  c++  java
  • 磁盘文件监控(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包

  • 相关阅读:
    SQL 游标使用实例 no
    C# DataTable 转换成JSON数据 no
    css设置滚动条的样式 no
    C# DataTable 转换成JSON数据 no
    springboot项目打包jar 并打包为exe启动
    springboot 项目启动自动打开浏览器访问网站设置
    springboot启动创建系统托盘及功能
    关于Web Service
    最近的我
    C++ wstring和string相互转换
  • 原文地址:https://www.cnblogs.com/timePasser-leoli/p/7300291.html
Copyright © 2011-2022 走看看