要求:定时发信功能
细节:只允许装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 697本文引用:http://www.yesky.com/263 ... -
数据动态插入表格
2009-09-10 13:42 714<%@ page language="java ... -
js 发送邮件
2009-07-22 14:27 6983有时mailto 用起来不是很 ... -
页面分辨率问题
2009-07-22 14:10 1029今天需要给页面插入背景图片, 开始是1024*768 标准分 ... -
css 应用
2009-07-09 22:04 797用css控制的语法如下: <span styl ... -
框架说明
2009-06-25 15:05 643数据库底层交互接口,及实现类 ... -
java 按对象属性排序
2009-06-25 13:51 12531、为了尽可能少的交互数据库 2、工作中难免会遇到得到一个集 ... -
表格样式还不错
2009-06-25 13:45 722<table width="100%" ... -
js动态增加表格
2009-06-08 17:52 1267场景: 使用js 实现对表格记录的增删改 页面样式: ... -
数据类型不匹配
2009-06-08 17:42 2234报错信息: java.servlet.ServletExce ... -
物流静态网站
2009-01-16 11:59 679最近帮同事做了个静态网站,物流方面的,就当没事做着玩了 -
mysql 注意
2008-10-22 17:23 905MySql局域网连接慢的解决方法 skip-name-reso ... -
vb 发邮件
2008-10-22 15:22 1567vb 发信,代码如下 Dim sFileName ... -
mysql 注意
2008-09-03 09:30 723MySql局域网连接慢的解决方法 skip-name-reso ... -
js 应用
2008-08-05 14:28 678如附件1 如附件2 如附件3 -
爱上css
2008-08-04 18:15 714以前很不重视css,老板要做静态页面,时间空闲搞java开发的 ... -
编码问题
2007-07-19 17:18 1023"计算机 "转码 1. u ... -
格式化输出
2007-04-20 10:01 1364// 日期格式化输出字符串 Simple ... -
session listener
2007-02-06 17:41 1191java 代码 package com.l ... -
JDK配制
2007-01-30 11:46 1514通常在 我的电脑---->属性---->高 ...
相关推荐
《bcprov-jdk14-145.jar:第三方加密库的详解与应用》 在Java编程领域,安全性和加密技术扮演着至关重要的角色。bcprov-jdk14-145.jar是一款针对Java 1.4版本设计的第三方加密库,由The Legion of the Bouncy ...
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文档,手册,...
bcprov-jdk15on-***.jar中文文档.zip,java,bcprov-jdk15on-***.jar,org.bouncycastle,bcprov-jdk15on,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,bouncycastle,bcprov,jdk15on,中文API文档,手册,...
VScode快速引入第三方jar包发QQ邮件 VSCode 作为一款功能强大且灵活的代码编辑器,拥有庞大的插件生态系统,可以满足各种开发需求。在开发过程中,我们经常需要引入第三方 jar 包来实现特定的功能,而 VSCode 提供...
JUL允许控制日志级别,配置日志处理器和过滤器,但它相对较弱,功能相对有限,不如其他第三方日志框架强大。 3. **SLF4J与JUL桥接**: SLF4J.jdk14-1.6.1.jar的作用在于将SLF4J的调用转换为JUL的调用。当SLF4J在运行...
3. `org`和`com`包:主要包含第三方库和特定功能的扩展,如`org.w3c.dom`用于XML文档对象模型,`com.sun`包中则包含了一些Sun Microsystems提供的非公开API。 4. `sun`和`sunw`包:这部分源码通常被认为是Oracle ...
在这种情况下,我们可以采用第三方库来解决这个问题。本篇文章将详细介绍如何使用UCanAccess库在Java(JDK 1.8)中连接到Access数据库。 UCanAccess是一个开源的Java库,它允许Java应用程序无需依赖Microsoft的JDBC...
在"lib"目录下的文件可能是Kettle运行所需的库文件,这些库文件包含了各种第三方组件和依赖,如数据库连接驱动、XML解析库、网络通信库等。确保这些库文件与你的JDK版本兼容,并且正确配置,是成功运行Kettle的关键...
`json-lib`作为一个第三方库,通常会通过Maven或Gradle等构建工具来添加依赖。然而,对于那些不使用这些工具或者没有自动管理依赖的项目,直接使用`json-lib-2.4-jdk15.jar`的全部JAR打包方式可以避免配置繁琐的依赖...
4. **使用适配库**:有些第三方库提供对旧版Spring和新版JDK的适配,可以帮助解决兼容性问题。 在实际操作中,应首先分析具体冲突的错误信息,确定问题的根源,然后采取适当的解决策略。对于压缩包中的“3.2”文件...
官网发布的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)
- 使用第三方加密库可能涉及法规和合规性问题,尤其是在国际间传输数据时。务必了解并遵守适用的加密法规。 - 添加新的安全提供者可能会影响其他依赖于加密服务的组件,因此在生产环境中进行这些更改时要谨慎。 - 要...
Java的标准版(JRE)在早期版本中提供的加密算法有限,对于一些特定的加密需求,如AES、RSA等,开发者可能需要第三方库如Bouncy Castle来增强其加密能力。这个库使得开发者可以轻松地在应用程序中集成高级加密标准...
在Java中,处理JSON通常需要借助第三方库,因为Java标准库直到Java SE 6才包含了内置的JSON支持。对于兼容JDK 1.4的JSON处理,这需要寻找一个老版本的JSON库,因为JDK 1.4是在2002年发布的,远早于Java对JSON的内置...
- **代理(Proxy)**:Spring AOP通过代理模式实现对目标对象的拦截,有JDK动态代理和CGLIB代理两种方式。 4. **Spring AOP与AspectJ的比较**: Spring AOP基于代理模型,而AspectJ则是一个完整的AOP编译器,可以...
默认情况下,JDK仅包含有限的加密算法,对于更复杂的加密需求,开发者通常会引入第三方的JCE提供者,比如Bouncy Castle。Bouncy Castle的优势在于其全面的算法支持、优秀的性能以及对开放标准的高度兼容。 `bcprov-...
看了源码之后,总有种蠢蠢欲动的感觉,想着以后啥时候牛逼了,自己也可以用springboot写个第三方组件,让别人引入jar包就行。虽然知道目前水平有限,先试试普通的jar包如何与spring自动装配吧~ 环境 jdk1.8 ...
在使用IntelliJ IDEA开发Java项目时,有时我们需要引入第三方jar包或查看其源码以进行调试或学习。然而,可能会遇到一个常见的错误提示:“decompiled.class file bytecode version:52.0(java 8)”,这表明IDE在尝试...