- 浏览: 103894 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
无锡:
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 1174近日调试一个项目的时候, 总是在运行一段时间之后出现如下的警告 ... -
那些令人发狂的程序特性 转
2011-12-09 14:36 869这些最为奇怪的程序语言的特性,来自stackoverflo ... -
中国天气网接口 返回json格式分析说明
2011-10-19 15:50 13126手机天气插件更新数据 ... -
补上中国天气网城市编码抓取代码 很一般的抓取代码.....嘿嘿
2011-10-18 11:39 2724import java.io.BufferedReader; ... -
中国天气网接口说明及城市编码全部 为天气开发做铺垫
2011-10-13 17:21 8524中国天气网接口及城市编码全部 为天气开发做铺垫 中国天气网接 ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 10:22 1991原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:59 729原文见:http://www.oschina.net/bb ... -
转:史上最强《软件工程师面试题》答案
2011-07-08 09:53 770原文见:http://www.oschina.net/bb ... -
5.14日下午 jvm 调优 java社区日上的jvm调优
2011-05-20 14:31 21665.14日下午 jvm 调优 java社区日上的jvm调优, ... -
svn 与 apache 整合
2011-03-02 16:20 1505整理了一些步骤,大部 ... -
weblogic 报错 Server failed to shutdown within the configured timeout of 30 second
2010-12-09 16:27 4583weblogic 下错错误 hibernate 配置里加上这个 ... -
Android2.2—API中文文档合集
2010-11-19 15:03 1300哎 今天偶然发现了这个 就顺带着整理吧 没想到整理完才发现最后 ... -
log4j屏蔽system.out的方法 摘取
2010-04-21 17:02 2831public static void setStdoutWit ... -
Hibernate的三种连接池设置C3P0、Proxool和DBCP
2008-06-12 09:42 5851<!-- JDBC驱动程序 --> <pr ... -
c3p0 连接池配置
2008-06-12 09:31 1104<c3p0-config> <de ... -
在JSTL中使用字符串处理函数
2008-06-05 15:03 5715函数名 函数说明 ... -
Spring MVC framework深入总体分析(转)
2008-06-05 10:06 875下面列举一下S ...
相关推荐
Spring整合Quartz定时发送邮件
该文档写了spring结合quartz定时发送邮件,有详细的配置文件,和相关代码,稍加研究就可以运行。
在spring利用javamail,quartz定时发送邮件
Spring框架整合Quartz,使用javamail定时发送邮件
spring-boot微服务框架,定时从数据库读取数据生成报表,并发送给boss
spring提供的定时发送邮件功能一直深受广大web开发者的喜爱,这篇文章主要介绍了Spring+quartz实现定时发送邮件功能实例,有兴趣的可以了解一下。
采用maven 搭建了一个工程,整合了spring和quartz框架,做了一个定时发送邮件的任务
网上诸如Spring Send Email 或者 Spring quartz Send Email 多不胜数,大多都只是简单介绍一下如何去实现,却没有考虑到作为一个Demo,最重要的是功能,本文通过完善的Demo介绍了一个Spring+Velocity 定时发送邮件的例子
NULL 博文链接:https://firezhfox.iteye.com/blog/1770575
主要为大家详细介绍了Spring实现邮件发送功能,简单的发送邮件工具JavaMailSender使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序 15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期) 16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. ...
2. Spring 2.0和 2.5的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 新的bean作用域 2.2.2. 更简单的XML配置 2.2.3. 可扩展的XML编写 2.2.4. Annotation(注解)驱动配置 2.2.5. 在classpath中自动搜索组件...
plus(快速操作Mybatis)、BeetlSQL(强大的ORM框架)、upload(本地文件上传和七牛云文件上传)、redis(缓存)、ehcache(缓存)、email(发送各种类型邮件)、task(基础定时任务)、quartz(动态管理定时任务)、xxl-job(分布式...
spring boot demo是一个用于深度学习并实战...强大的ORM框架)、upload( 本地文件上传和七牛云文件上传)、redis( 缓存)、ehcache( 缓存)、email( 发送各种类型邮件)、task( 基础定时任务)、quartz( 动态管理定时任务)等