- 浏览: 106468 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
无锡:
http://m.weather.com.cn/data/10 ...
中国天气网接口 返回json格式分析说明 -
wei705026811:
博主。。那个为什么我获取的时候没data:辛卯年
中国天气网接口 返回json格式分析说明 -
luguouyujian:
99 的意思是指 更之前的那个天气一样。比如Image10 ...
中国天气网接口 返回json格式分析说明 -
Ueaner:
辛苦啦~~
中国天气网接口说明及城市编码全部 为天气开发做铺垫 -
zhaiweij:
这个接口是免费的么???
中国天气网接口 返回json格式分析说明
关于Spring的邮件发送的功能演示:
(我把程序中一些敏感的地方替换成了其他的文字,直接调试肯定不行,只是给大家一个参考)
需要用到的jar包是
spring-context.jar
mail.jar
spring-core.jar
activation.jar
commons-logging.jar
这些是程序必须要用到的包。
spring-context.jar
mail.jar
spring-core.jar
activation.jar
commons-logging.jar
这些是程序必须要用到的包。
1:简单邮件
简单邮件中是可以实现邮件群发的功能的,区别是收件人可以是一个数组。
package com; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; /** * 本类测试简单邮件 * * @author sunny * */ public class SingleMailSend { public static void main(String args[]){ JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 设定mail server senderImpl.setHost("192.168.1.1"); senderImpl.setUsername("username"); senderImpl.setPassword("password"); // 建立邮件消息 SimpleMailMessage mailMessage = new SimpleMailMessage(); // 设置收件人,寄件人 // String[] array = new String[] {"sun111@163.com","sun222@sohu.com"}; // mailMessage.setTo(array); mailMessage.setTo("sun111@163.com"); mailMessage.setFrom("webadmin@163.com"); mailMessage.setSubject("测试邮件群发!"); mailMessage.setText("测试我的简单邮件发送机制!!"); // 发送邮件 senderImpl.send(mailMessage); System.out.println("邮件发送成功....."); } }
2:HTML邮件的发送
package com; import javax.mail.internet.MimeMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; /** * 本类测试html邮件 * @author sunny * */ public class HTMLMailDemo { /** * @param args */ public static void main(String[] args) throws Exception { JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); //设定mail server senderImpl.setHost("192.168.1.1"); senderImpl.setUsername("username"); senderImpl.setPassword("password"); //建立邮件消息,发送简单邮件和html邮件的区别 MimeMessage mailMessage = senderImpl.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); //设置收件人,寄件人 messageHelper.setTo("sun111@163.com"); messageHelper.setFrom("webadmin@163.com"); messageHelper.setSubject("测试HTML邮件!"); //true 表示启动HTML格式的邮件 messageHelper .setText( "<html><head></head><body><h1>hello!!zhangjian</h1></body></html>", true); //发送邮件 senderImpl.send(mailMessage); System.out.println("邮件发送成功....."); } }
3:本类测试邮件中嵌套图片
package com; import java.io.File; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; /** * 本类测试邮件中嵌套图片 * @author sunny * */ public class AttachedImageMail { public static void main(String[] args) throws Exception{ JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); //设定mail server senderImpl.setHost("192.168.1.2"); senderImpl.setUsername("username"); senderImpl.setPassword("pssword"); //建立邮件消息,发送简单邮件和html邮件的区别 MimeMessage mailMessage = senderImpl.createMimeMessage(); //注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用, multipart模式 MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true); //设置收件人,寄件人 messageHelper.setTo("sun111@163.com"); messageHelper.setFrom("webadmin@163.com"); messageHelper.setSubject("测试邮件中嵌套图片!!"); //true 表示启动HTML格式的邮件 messageHelper.setText("<html><head></head><body><h1>hello!!zhangjian</h1>" + "<img src=\"cid:aaa\"/></body></html>",true); FileSystemResource img = new FileSystemResource(new File("c:/aaa.jpg")); messageHelper.addInline("aaa",img); //发送邮件 senderImpl.send(mailMessage); System.out.println("邮件发送成功....."); } }
4: 测试邮件中包含附件
package com; import java.io.File; import javax.mail.internet.MimeMessage; import org.springframework.core.io.FileSystemResource; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; public class AttachedFileMail { /** * 本类测试的是关于邮件中带有附件的例子 * * @param args */ public static void main(String[] args) throws Exception{ JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); // 设定mail server senderImpl.setHost("192.168.1.2"); senderImpl.setUsername("username"); senderImpl.setPassword("password"); // 建立邮件消息,发送简单邮件和html邮件的区别 MimeMessage mailMessage = senderImpl.createMimeMessage(); // 注意这里的boolean,等于真的时候才能嵌套图片,在构建MimeMessageHelper时候,所给定的值是true表示启用, ultipart模式 MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true); // 设置收件人,寄件人 messageHelper.setTo("sun111@163.com"); messageHelper.setFrom("webadmin@163.com"); messageHelper.setSubject("测试邮件中上传附件!!"); // true 表示启动HTML格式的邮件 messageHelper.setText("<html><head></head><body><h1>你好:附件中有关于CSS的学习资料!</h1></body></html>",true); FileSystemResource file = new FileSystemResource(new File("d:/CSS110.rar")); // 这里的方法调用和插入图片是不同的。 messageHelper.addAttachment("CSS110.rar",file); // 发送邮件 senderImpl.send(mailMessage); System.out.println("邮件发送成功....."); } }
5.spring和quartz进行定时邮件发送
一 发送邮件的基类:
package com.spring.mail; import org.springframework.mail.MailSender; //import org.springframework.mail.javamail.JavaMailSender; public abstract class BaseMailSender { protected String to; protected String from; protected String subject; protected MailSender sender; //当发送的邮件为简单邮件时用MailSender即可; //protected JavaMailSender sender; //当发送的邮件为MIMI时用JavaMailSender public void setTo(String to) { this.to = to; } public void setFrom(String from) { this.from = from; } public void setSubject(String subject) { this.subject = subject; } public void setJavaMailSender(MailSender sender) {//(JavaMailSender sender) { this.sender = sender; } }
发送邮件调用的类
package com.spring.mail; import javax.mail.MessagingException; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.mail.SimpleMailMessage; public class SimpleHtmlMailSender extends BaseMailSender { public void sendMessage() throws MessagingException { String textStr = "Helo!!!!!!!!!!!";//发送邮件的消息主体 SimpleMailMessage msg = new SimpleMailMessage(); msg.setTo(to); msg.setFrom(from); msg.setSubject(subject); msg.setText(textStr); sender.send(msg); } public void doIt() throws Exception { ClassPathXmlApplicationContext ctx1 = new ClassPathXmlApplicationContext( new String[] { "ApplicationContext.xml" }); SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx1 .getBean("messageSender"); sender.sendMessage(); System.out.println("发送成功"); } }
配置文件ApplicationContext:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans public "-//SPRING//DTD BEAN//EN" " http://www.springframework.org/dtd/spring-beans.dtd "> <beans> <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host"> <value>smtp.163.com</value> </property> <property name="username"> <value>tomcat0506</value> </property> <property name="password"> <value>wes</value> </property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> <bean id="messageSender" class="com.spring.mail.SimpleHtmlMailSender"> <property name="javaMailSender"> <ref bean="sender"/> </property> <property name="to"> <value>wes830506@126.com</value> </property> <property name="from"> <value>tomcat0506@163.com</value> </property> <property name="subject"> <value>test</value> </property> </bean> <bean id="methodInvokingJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- <property name="jobClass"> <value>com.spring.mail.SimpleHtmlMailSender</value> </property>--> <property name="targetObject"><ref bean="messageSender"/></property> <property name="targetMethod"><value>doIt</value></property> </bean> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail"><ref bean="methodInvokingJobDetail"/></property> <property name="startDelay"> <!-- 3 seconds --> <value>3000</value> </property> <property name="repeatInterval"> <!-- repeat every 6 seconds --> <value>6000</value> </property> </bean> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="methodInvokingJobDetail"/></property> <property name="cronExpression"> <value>0 0 6,12,20 * * ?</value> </property> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="simpleTrigger"/> </list> </property> </bean> </beans>
二 mimi邮件发送
在编写发送邮件程序时需要用到的类有一下几个:
org.springframework.mail.javamail.JavaMailSender;
//此类继承了spring里面的
//MailSender接口--定义了两个简单的sender方法,用于发送简单的邮件信息,参数类型为:SimpleMailMessage([])
//JavaMailSender类继承了上面方法后支持MIMI邮件,可以发MIMI消息
org.springframework.context.support.ClassPathXmlApplicationContext;
//spring里面读取配置文件时需要用到的类
org.springframework.mail.javamail.MimeMessageHelper;
//在发送MIMI消息时需要用到的辅助类
javax.mail.MessagingException;
javax.mail.internet.MimeMessage;
//J2EE里面支持发送MIMe信息需要的类
例子:
发送邮件的基类
BaseMailSender .java:
import org.springframework.mail.javamail.JavaMailSender; public abstract class BaseMailSender { protected String to; protected String from; protected String subject; protected JavaMailSender sender;//当发送MIMI消息时用到的类 public void setTo(String to) { this.to = to; } public void setFrom(String from) { this.from = from; } public void setSubject(String subject) { this.subject = subject; } public void setJavaMailSender(JavaMailSender sender) { this.sender = sender; } }
发送邮件的类:
package com.spring.mail; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.MimeMessageHelper; public class SimpleHtmlMailSender extends BaseMailSender { public void sendMessage() throws MessagingException { //String htmlHead = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body>"; //String htmlBody = ""; //String htmlEnd = ""; // StringBuffer mailMessage = new StringBuffer(); //mailMessage.append(htmlHead); //mailMessage.append(htmlBody); //mailMessage.append(htmlEnd); //当发送的邮件为简单邮件时注销此句 String textStr = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body><h1><a href=''>^_^!</a></h1></body></html>"; //String textStr = "Helo could you see this email?";//发送邮件的消息主体 //SimpleMailMessage msg = new SimpleMailMessage(); //当发送邮件为简单邮件时把此句注销即可 MimeMessage msg = sender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(msg, true, "GB2312"); helper.setTo(to); helper.setFrom(from); helper.setSubject(subject); helper.setText(textStr, true); /* msg.setTo(to); msg.setFrom(from); msg.setSubject(subject); msg.setText(textStr); */ sender.send(msg); } public void doIt() throws Exception {//static void main(String[] args) throws Exception {// //ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[] { "springexample-creditaccount.xml" }); ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( new String[] { "ApplicationContext.xml" }); SimpleHtmlMailSender sender = (SimpleHtmlMailSender) ctx .getBean("messageSender"); sender.sendMessage(); System.out.println("发送成功"); } }
配置文件同上!
发表评论
-
proxool中的maximum-active-time 转
2012-01-31 16:50 1210近日调试一个项目的时候, 总是在运行一段时间之后出现如下的警告 ... -
那些令人发狂的程序特性 转
2011-12-09 14:36 941这些最为奇怪的程序语言的特性,来自stackoverflo ... -
中国天气网接口 返回json格式分析说明
2011-10-19 15:50 13222手机天气插件更新数据 ... -
补上中国天气网城市编码抓取代码 很一般的抓取代码.....嘿嘿
2011-10-18 11:39 2815import java.io.BufferedReader; ... -
中国天气网接口说明及城市编码全部 为天气开发做铺垫
2011-10-13 17:21 8658中国天气网接口及城市编码全部 为天气开发做铺垫 中国天气网接 ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 10:22 2031原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:59 783原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:53 815原文见:http://www.oschina.net/bb ... -
5.14日下午 jvm 调优 java社区日上的jvm调优
2011-05-20 14:31 22095.14日下午 jvm 调优 java社区日上的jvm调优, ... -
svn 与 apache 整合
2011-03-02 16:20 1536整理了一些步骤,大部 ... -
weblogic 报错 Server failed to shutdown within the configured timeout of 30 second
2010-12-09 16:27 4666weblogic 下错错误 hibernate 配置里加上这个 ... -
Android2.2—API中文文档合集
2010-11-19 15:03 1380哎 今天偶然发现了这个 就顺带着整理吧 没想到整理完才发现最后 ... -
log4j屏蔽system.out的方法 摘取
2010-04-21 17:02 2903public static void setStdoutWit ... -
Hibernate的三种连接池设置C3P0、Proxool和DBCP
2008-06-12 09:42 5900<!-- JDBC驱动程序 --> <pr ... -
c3p0 连接池配置
2008-06-12 09:31 1150<c3p0-config> <de ... -
在JSTL中使用字符串处理函数
2008-06-05 15:03 5758函数名 函数说明 ... -
Spring MVC framework深入总体分析(转)
2008-06-05 10:06 922下面列举一下S ...
相关推荐
Spring整合Quartz定时发送邮件涉及到的关键技术点有: 1. 使用Apache Commons Email库进行邮件发送。 2. 创建Quartz Job,继承Spring提供的`QuartzJobBean`,并在`executeInternal()`方法中执行实际任务。 3. 在...
在IT行业中,定时任务是...通过这样的整合,你可以实现一个灵活且可扩展的定时邮件发送系统,不仅可以定期向用户发送通知,也可以在特定事件触发时发送邮件。这在很多业务场景中都非常实用,如定期报告、订阅提醒等。
总之,结合Spring Boot、Quartz和邮件服务,我们可以构建出强大的定时任务系统,自动从数据库提取数据,生成报表,并将结果以邮件的形式发送给指定的接收者。这样的系统在许多业务场景中都有广泛的应用,例如日常...
通过上述步骤,我们不仅了解了如何在Spring环境中结合JavaMail和Quartz实现定时邮件发送,而且还深入探索了Spring框架如何简化JavaMail API的使用,以及Quartz如何提供灵活的定时任务调度能力。这种技术组合为Web...
在 "spring+quartz定时小例子" 中,我们主要关注的是如何将这两个框架结合使用,创建一个可以执行定时任务的应用。这个例子包含了相关的框架包和文档,帮助开发者理解并实践这一整合过程。 1. **Spring 配置**: ...
要实现定时发送邮件功能,需要使用Spring框架和Quartz框架结合。首先,需要在ApplicationContext.xml文件中配置Quartz的Bean,包括JobDetail和Trigger。JobDetail用于定义要执行的任务,而Trigger用于定义任务的执行...
Spring提供了一种集成Quartz的方式,使得我们可以方便地在Spring应用中管理和执行定时任务。本篇将深入探讨如何在Spring中启动和停止Quartz定时器。 首先,我们需要理解Spring和Quartz的基本概念。Spring是一个强大...
而Quartz是一款强大的开源作业调度框架,可以用于在特定时间执行任务,比如定时发送邮件、数据同步等。 在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和...
Spring Quartz常用于执行后台维护任务,例如数据清理、统计报告生成、定时邮件发送等。通过灵活的触发器设置,可以实现各种定时策略,满足不同业务需求。 综上所述,Spring Quartz定时作业项目提供了一个完整的...
在IT行业中,定时任务是常见的一种需求,它允许程序在特定时间或按照一定周期自动执行某些操作,比如发送邮件、进行数据统计、更新系统状态、推送消息、开启活动或创建增量索引等。目前,主要有两种方式可以实现定时...
在实际开发中,Spring+Quartz的组合常常用于实现后台的定时任务,比如数据同步、报表生成、邮件发送等。通过这种方式,开发者可以把注意力集中在任务本身,而无需关心调度的细节,提高了代码的可维护性和复用性。 ...
在Java应用开发中,定时任务是一项常用的功能,用于执行周期性的、计划性的工作,例如数据同步、日志清理、发送邮件等。Spring框架提供了与Quartz库集成的能力,使得我们可以方便地创建和管理定时任务。 Spring与...
Quartz 主要用于解决需要定期执行的任务,如网页游戏中的定时事件、企业的日常数据同步、邮件发送等自动化操作。在网页游戏中,例如,可以设定角色自动修炼、道具效果计时等。在企业环境中,它可能用于每天固定时间...
关于压缩包中的文件"spring_扩展_邮件及定时任务_2",它很可能包含了示例代码或者配置文件,用于演示如何在Spring项目中实现邮件发送和定时任务。这些文件可能包括了Java源代码、XML配置文件或者YAML配置文件,你...
Quartz则是用于创建和管理定时任务的开源库,它允许程序根据预定义的规则执行任务,如定时发送邮件、数据同步等。 集成Spring和Quartz,我们需要以下几个步骤: 1. **引入依赖**:在项目中添加Spring和Quartz的...
在Spring框架中,定时任务是常见的需求,例如用于执行定期数据同步、日志清理或发送邮件等。Quartz是一款强大的开源任务调度库,它能够与Java应用程序无缝集成,实现复杂的时间触发任务。当我们遇到Spring定时器执行...
总的来说,Spring 和 Quartz 的集成是一项常见的需求,它使得开发者能够轻松地在应用中实现定时任务,如定期备份数据库、发送邮件等。了解并掌握这种集成方法对于提升 Java 后端应用的自动化处理能力至关重要。
描述中提到"应对不同版本的spring 与quartz定时任务创建所需要的不同的jar包",这意味着此压缩包中包含的 jar 文件可以用于配置和实现基于 Spring 的 Quartz 定时任务。在 Spring 中,Quartz 可以被集成用来执行后台...