要求:定时发信功能
细节:只允许装jdk
方案:定时用批处理来完成,发信功能由javamail 实现
步骤:1、定时 批处理脚本,以下是每5秒钟运行一次,运行10000000次 ,java 文件新建在 c 盘根目录下
ping -n 5 127.1>nul @echo off for /l %%x in (1,1,10000000) do ( echo %%x cd\ javac SendMail.java java SendMail ping -n 5 127.1>nul ) 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
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class SendMail { public static void main(String[] args) { System.out.println("------start-----"); SendMail sm = new SendMail(); String from = "xingyu@bolasoft.com"; 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>"; String to = "anxingyu_1984@126.com"; String password = "×××"; String username = "xingyu@bolasoft.com"; String subject = "発行通知"; String host = "smtp.bolasoft.com"; try { // 读文件,得到发件人和收件人 File f=new File("C:/MBSTimingJobs/property.txt"); InputStream is = new FileInputStream(f); List<Object> list = sm.readToBuffer(is); is.close(); from=list.get(0).toString(); username=list.get(0).toString(); password=list.get(1).toString(); to=list.get(2).toString(); System.out.println(host); System.out.println(from); System.out.println(to); System.out.println(username); System.out.println(password); sm.smail(host, from, to, username, password, subject, content); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("------end-----"); } public List<Object> readToBuffer( InputStream is) throws IOException { List<Object> list = new ArrayList<Object>(); String line; // 用来保存每行读取的内容 BufferedReader reader = new BufferedReader(new InputStreamReader(is)); line = reader.readLine(); // 读取第一行 while (line != null) { // 如果 line 为空说明读完了 list.add(line); line = reader.readLine(); // 读取下一行 } return list; } public void smail(String host, String from, String to, String username, String password, String subject, String content) throws Exception { Properties props = new Properties(); // Setup mail server props.put("mail.smtp.host", host); props.put("mail.smtp.auth", "true"); // Get session Session session = Session.getDefaultInstance(props); // watch the mail commands go by to the mail server session.setDebug(true); // Define message MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); // create the message part MimeBodyPart messageBodyPart = new MimeBodyPart(); String fileAttachment = "C:/MBSTimingJobs/DayStatistc/"+dateFormat()+".csv"; // fill message Multipart multipart = new MimeMultipart(); messageBodyPart.setContent(content, "text/html;charset=GBK"); multipart.addBodyPart(messageBodyPart); // Part two is attachment messageBodyPart = new MimeBodyPart(); DataSource source = new FileDataSource(fileAttachment); messageBodyPart.setDataHandler(new DataHandler(source)); @SuppressWarnings("unused") String fileName = new String(fileAttachment.getBytes("ISO-8859-1"),"GBK"); String[] arrayStr = fileAttachment.split("/"); String file = arrayStr[arrayStr.length - 1]; System.out.println("file = " + file); messageBodyPart.setFileName(file); multipart.addBodyPart(messageBodyPart); // Put parts in message message.setContent(multipart); // Send message message.saveChanges(); Transport transport = session.getTransport("smtp"); transport.connect(host, username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } private static String dateFormat(){ SimpleDateFormat sdf=new SimpleDateFormat("yy-MM-dd"); return sdf.format(new Date()); } }
注意:jar 所在位置,根据CLASSPATH可看出,发送邮件的源码中附件的位置 C:/MBSTimingJobs/DayStatistc/ ,附件名称是每天动态得到
ok!
- demo.rar (504.1 KB)
- 下载次数: 7
发表评论
-
JDK1.5新特性介绍
2010-04-27 09:08 656本文引用:http://www.yesky.com/263 ... -
数据动态插入表格
2009-09-10 13:42 666<%@ page language="java ... -
js 发送邮件
2009-07-22 14:27 6911有时mailto 用起来不是很 ... -
页面分辨率问题
2009-07-22 14:10 983今天需要给页面插入背景图片, 开始是1024*768 标准分 ... -
css 应用
2009-07-09 22:04 760用css控制的语法如下: <span styl ... -
框架说明
2009-06-25 15:05 610数据库底层交互接口,及实现类 ... -
java 按对象属性排序
2009-06-25 13:51 11911、为了尽可能少的交互数据库 2、工作中难免会遇到得到一个集 ... -
表格样式还不错
2009-06-25 13:45 653<table width="100%" ... -
js动态增加表格
2009-06-08 17:52 1206场景: 使用js 实现对表格记录的增删改 页面样式: ... -
数据类型不匹配
2009-06-08 17:42 2163报错信息: java.servlet.ServletExce ... -
物流静态网站
2009-01-16 11:59 641最近帮同事做了个静态网站,物流方面的,就当没事做着玩了 -
mysql 注意
2008-10-22 17:23 867MySql局域网连接慢的解决方法 skip-name-reso ... -
vb 发邮件
2008-10-22 15:22 1523vb 发信,代码如下 Dim sFileName ... -
mysql 注意
2008-09-03 09:30 690MySql局域网连接慢的解决方法 skip-name-reso ... -
js 应用
2008-08-05 14:28 623如附件1 如附件2 如附件3 -
爱上css
2008-08-04 18:15 677以前很不重视css,老板要做静态页面,时间空闲搞java开发的 ... -
编码问题
2007-07-19 17:18 983"计算机 "转码 1. u ... -
格式化输出
2007-04-20 10:01 1329// 日期格式化输出字符串 Simple ... -
session listener
2007-02-06 17:41 1140java 代码 package com.l ... -
JDK配制
2007-01-30 11:46 1480通常在 我的电脑---->属性---->高 ...
相关推荐
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
iTextAsian.jar :PDF支持中文JAR iText-5.0.5.jar :核心JAR bcprov-jdk-145.jar :对加密的支持
官网发布的json-lib-2.4-jdk...本jar包经过改造,适用于JDK1.4,需要第三方JAR包的支持(commons-beanutils-1.8.2.jar,commons-collections-3.2.jar,commons-lang-2.5.jar,commons-logging-1.1.jar,ezmorph-1.0.6.jar)
看了源码之后,总有种蠢蠢欲动的感觉,想着以后啥时候牛逼了,自己也可以用springboot写个第三方组件,让别人引入jar包就行。虽然知道目前水平有限,先试试普通的jar包如何与spring自动装配吧~ 环境 jdk1.8 ...
使用方法如下,maven直接引入即可。 <groupId>myjar <artifactId>aspose-words-21.11-jdk17 <scope>system <version>1.8.0 ${project.basedir}/src/lib/aspose-words-21.11-jdk17-1.0.jar </dependency>
在Adroid中拟使用Excel等offic文档,从头开发所有的office格式、协议将是无比巨大的工作量,直接从第三方库来做就方便多了。 目前找到比较好的就是apache的poi。 poi是apache开发office库,java语言,用于PC端。 ...
突破jdk与wsdl第三方对xml文本解析领域割据趋势,该脚本既可以支持普通xml解析,也支持soap-xml第三方xml文本的解析; 极大的节省了引入冗余jar资源; 纯底层算法解析,不依赖任何第三方工具包,自主产权维护性强。
突破jdk与wsdl第三方对xml文本解析领域割据趋势,该脚本既可以支持普通xml解析,也支持soap-xml第三方xml文本的解析; 极大的节省了引入冗余jar资源; 纯底层算法解析,不依赖任何第三方工具包,自主产权维护性强。
要引入大量的第三方开发工具包,而对于这些开发包的引用,最初的做 法:下载下来*.jar文件,而后在需要的地方拷贝到项目的WEB-INF/lib 目录之中就可以使用了,但是这种方式很多时候并不方便,如果说现在 开发包的...
� 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...
第三篇 高级基础篇 第11章 异常处理——Java世界的医生 195 11.1 异常处理的基本知识 195 11.1.1 try和catch捕获异常 195 11.1.2 异常的传播过程 198 11.1.3 finally语句块的使用 199 11.1.4 try、...