jdk引入第三方jar

来源:互联网 发布:linux服务器防火墙设置 编辑:程序博客网 时间:2024/05/20 20:05

由于工作的需要,

要求:定时发信功能

细节:只允许装jdk

方案:定时用批处理来完成,发信功能由javamail 实现

步骤:1、定时 批处理脚本,以下是每5秒钟运行一次,运行10000000次 ,java 文件新建在 c 盘根目录下

  1. ping -n 5 127.1>nul 
  2. @echo off 
  3. for /l %%x in (1,1,10000000do ( 
  4. echo %%x 
  5. cd/
  6. javac SendMail.java
  7. java SendMail
  8. ping -n 5 127.1>nul 
  9. pause 

2、java 实现发信功能

首先,CLASSPATH 配置第三方jar包,如 :%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar;D:/java/jdk1.5.0_12/lib/thirdJar/mail.jar;D:/java/jdk1.5.0_12/lib/thirdJar/activation.jar;D:/java/jdk1.5.0_12/lib/thirdJar/mailapi.jar;

其次,编译文件,执行文件 SendMail.java

  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6. import java.io.InputStreamReader;
  7. import java.text.SimpleDateFormat;
  8. import java.util.ArrayList;
  9. import java.util.Date;
  10. import java.util.List;
  11. import java.util.Properties;
  12. import javax.activation.DataHandler;
  13. import javax.activation.DataSource;
  14. import javax.activation.FileDataSource;
  15. import javax.mail.Message;
  16. import javax.mail.Multipart;
  17. import javax.mail.Session;
  18. import javax.mail.Transport;
  19. import javax.mail.internet.InternetAddress;
  20. import javax.mail.internet.MimeBodyPart;
  21. import javax.mail.internet.MimeMessage;
  22. import javax.mail.internet.MimeMultipart;
  23. public class SendMail {
  24.     public static void main(String[] args) {
  25.         System.out.println("------start-----");
  26.         SendMail sm = new SendMail();
  27.         String from = "xingyu@bolasoft.com";
  28.         String content = "<html><body>いつも大変、お世話になっております。<br>本日発行したアカウントをご連絡いたします。<br> よろしくお願いいたします。<br>==============================<br>株式会社シルクロード<br>  〒135‐0001 江東区毛利1‐12‐10‐1102<br>電話:03‐5624‐5805<br>Fax :03‐5624‐5807<br> ==============================<br>";
  29.         String to = "anxingyu_1984@126.com";
  30.         String password = "×××";
  31.         String username = "xingyu@bolasoft.com";
  32.         String subject = "発行通知";
  33.         String host = "smtp.bolasoft.com";
  34.         try {
  35. //          读文件,得到发件人和收件人 
  36.             File f=new File("C:/MBSTimingJobs/property.txt");
  37.             InputStream is = new FileInputStream(f);
  38.             List<Object> list = sm.readToBuffer(is);
  39.             is.close();
  40.             from=list.get(0).toString();
  41.             username=list.get(0).toString();
  42.             password=list.get(1).toString();
  43.             to=list.get(2).toString();
  44.             System.out.println(host);
  45.             System.out.println(from);
  46.             System.out.println(to);
  47.             System.out.println(username);
  48.             System.out.println(password);
  49.              sm.smail(host, from, to, username, password, subject, content);
  50.         } catch (Exception e) {
  51.             // TODO Auto-generated catch block 
  52.             e.printStackTrace();
  53.         }
  54.         System.out.println("------end-----");
  55.     }
  56.     public List<Object> readToBuffer( InputStream is)
  57.             throws IOException {
  58.         List<Object> list = new ArrayList<Object>();
  59.         String line; // 用来保存每行读取的内容 
  60.         BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  61.         line = reader.readLine(); // 读取第一行 
  62.         while (line != null) { // 如果 line 为空说明读完了 
  63.             list.add(line);
  64.             line = reader.readLine(); // 读取下一行 
  65.         }
  66.         return list;
  67.     }
  68.     public void smail(String host, String from, String to, String username,
  69.             String password, String subject, String content) throws Exception {
  70.         Properties props = new Properties();
  71.         // Setup mail server 
  72.         props.put("mail.smtp.host", host);
  73.         props.put("mail.smtp.auth""true");
  74.         // Get session 
  75.         Session session = Session.getDefaultInstance(props);
  76.         // watch the mail commands go by to the mail server 
  77.         session.setDebug(true);
  78.         // Define message 
  79.         MimeMessage message = new MimeMessage(session);
  80.         message.setFrom(new InternetAddress(from));
  81.         message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
  82.         message.setSubject(subject);
  83.         // create the message part 
  84.         MimeBodyPart messageBodyPart = new MimeBodyPart();
  85.         String fileAttachment = "C:/MBSTimingJobs/DayStatistc/"+dateFormat()+".csv";
  86.         // fill message 
  87.         Multipart multipart = new MimeMultipart();
  88.         messageBodyPart.setContent(content, "text/html;charset=GBK");
  89.         multipart.addBodyPart(messageBodyPart);
  90.         // Part two is attachment 
  91.         messageBodyPart = new MimeBodyPart();
  92.         DataSource source = new FileDataSource(fileAttachment);
  93.         messageBodyPart.setDataHandler(new DataHandler(source));
  94.         @SuppressWarnings("unused")
  95.         String fileName = new String(fileAttachment.getBytes("ISO-8859-1"),"GBK");
  96.         String[] arrayStr = fileAttachment.split("/");
  97.         String file = arrayStr[arrayStr.length - 1];
  98.         System.out.println("file = " + file);
  99.         messageBodyPart.setFileName(file);
  100.         multipart.addBodyPart(messageBodyPart);
  101.         // Put parts in message 
  102.         message.setContent(multipart);
  103.         // Send message 
  104.         message.saveChanges();
  105.         Transport transport = session.getTransport("smtp");
  106.         transport.connect(host, username, password);
  107.         transport.sendMessage(message, message.getAllRecipients());
  108.         transport.close();
  109.     }
  110.     private static String dateFormat(){
  111.         SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd");
  112.         return sdf.format(new Date());
  113.     }
  114. }

注意:jar 所在位置,根据CLASSPATH可看出,发送邮件的源码中附件的位置 C:/MBSTimingJobs/DayStatistc/ ,附件名称是每天动态得到

 

ok!

 

 

 

 

原创粉丝点击