使用Spring的JAVA Mail支持简化邮件发送
2016-03-08 00:00
483 查看
闲来无事,翻看《SpringinAction》,发现Spring集成了对JAVAMail的支持,有点小激动的看了一遍,嗯,话说真的简单了很多。
Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类。可以通过在配置文件中配置使用,当然也可以自己硬编码到代码中(方便起见,下面的演示代码都是硬编码到代码中,省得配置麻烦)。
Spring提供的邮件发送不仅支持简单邮件的发送、添加附件,而且还可以使用velocity模板控制页面样式(应该也支持freemarker)。
首先对加入相应Springjar包和JavaMail的jar包。
我们首先得声明一个MailSender对象,因为MailSender对象只有两个重载的send(...)方法,显得有些简陋,我们建议选用JavaMailSender接口,或者干脆直接使用实现类,JavaMailSenderImpl。笔者是使用的JavaMailSenderImpl对象,功能丰富。
声明JavaMailSenderImpl对象,并在构造函数中初始化(当然也可以使用IoC容器初始化):
得到了MailSender对象之后,就可以发送邮件了,下面是示例代码,没有封装,仅供参考。
1、发送简单邮件
2、发送带附件的邮件
3、发送富文本邮件
4、使用Velocity模板确定邮件风格
使用Velocity模板,需要Velocity的jar包,可以在官方网站下载,并加入ClassPath,然后需要声明一个VelocityEngine对象,具体的参考下面代码,这是笔者第一次使用Velocity,不甚了解,言多有失,望见谅。
声明一个VelocityEngine对象,并在构造函数中初始化(IoCisoptional)
简单的Velocity模板文件(index.vm):
开起来貌似很容易理解,只是普通的Html文件,使用了一些${placeholder}作为占位符。
Java要做的,就是加载模板,并将相应的值插入到占位符当中。
Spring的邮件发送的核心是MailSender接口,在Spring3.0中提供了一个实现类JavaMailSenderImpl,这个类是发送邮件的核心类。可以通过在配置文件中配置使用,当然也可以自己硬编码到代码中(方便起见,下面的演示代码都是硬编码到代码中,省得配置麻烦)。
Spring提供的邮件发送不仅支持简单邮件的发送、添加附件,而且还可以使用velocity模板控制页面样式(应该也支持freemarker)。
首先对加入相应Springjar包和JavaMail的jar包。
我们首先得声明一个MailSender对象,因为MailSender对象只有两个重载的send(...)方法,显得有些简陋,我们建议选用JavaMailSender接口,或者干脆直接使用实现类,JavaMailSenderImpl。笔者是使用的JavaMailSenderImpl对象,功能丰富。
声明JavaMailSenderImpl对象,并在构造函数中初始化(当然也可以使用IoC容器初始化):
1、发送简单邮件
2、发送带附件的邮件
3、发送富文本邮件
使用Velocity模板,需要Velocity的jar包,可以在官方网站下载,并加入ClassPath,然后需要声明一个VelocityEngine对象,具体的参考下面代码,这是笔者第一次使用Velocity,不甚了解,言多有失,望见谅。
声明一个VelocityEngine对象,并在构造函数中初始化(IoCisoptional)
Java要做的,就是加载模板,并将相应的值插入到占位符当中。
相关文章推荐
- java中split的坑,用的时候一定要小心
- Git中的AutoCRLF与SafeCRLF换行符问题(及eclipse设置)
- Java小并发下短期任务的线程池
- /.org.eclipse.jdt.core.external.folders/.link0解决方法
- java变量命名规范
- IntelliJ IDEA 14.0 添加及显示 JDK DOC
- java URL中文乱码
- 深入理解Java 虚拟机(周志明)笔记(二)——Java数据分区
- 深入理解Java 虚拟机(周志明)笔记(一)——Java虚拟机发展史
- LeetCode : Merge k Sorted Lists [java]
- Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用 《转》
- 为什么JAVA的垃圾回收机制无法避免内存泄漏
- 7. SpringMVC 数据验证
- Java [Leetcode 144]Binary Tree Preorder Traversal
- 编写web遇到javabean的一个错误
- SpringMVC Controller 介绍
- 修改JAVA_HOME无效,java版本保持不变的问题解决
- java中CAS算法保证原子性 无锁编程
- 【Java】面向对象思想以及类与对象的关系
- eclipse项目遇到红色叹号,该如何解决?