本文以用户注册后为用户发送一封邮件为例子,讲述如何在Spring中使用FreeMaker或Vilocity发送邮件。
Spring配置文件:
xml 代码
-
- <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
- <property name="host" value="smtp.163.com"/>
- <property name="username" value="test"/>
- <property name="password" value="123456"/>
- <property name="javaMailProperties">
- <props>
- <prop key="mail.smtp.auth">trueprop>
- props>
- property>
- bean>
-
-
- <bean id="freeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
- <property name="templateLoaderPath" value="/WEB-INF/freemakertemplate/" />
- <property name="freemarkerSettings">
- <props>
- <prop key="template_update_delay">0prop>
- <prop key="default_encoding">GBKprop>
- <prop key="locale">zh_CNprop>
- props>
- property>
- bean>
-
-
- <bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
- <property name="resourceLoaderPath" value="/WEB-INF/vilocitytemplate/" />
- <property name="velocityProperties">
- <props>
- <prop key="velocimacro.library">*.vmprop>
- <prop key="default.contentType">text/html; charset=utf-8prop>
- <prop key="output.encoding">utf-8prop>
- <prop key="input.encoding">utf-8prop>
- props>
- property>
- bean>
-
- <bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage" singleton="false">
- <property name="from" value="test@163.com"/>
- bean>
-
- <bean id="mailEngine" class="test.MailEngine">
- <property name="mailSender" ref="mailSender"/>
-
- <property name="velocityEngine" ref="velocityEngine"/>
-
- <property name="freeMarkerConfigurer" ref="freeMarkerConfigurer" />
- bean>
java 代码
- MailEngine类:
-
- public class MailEngine {
- protected static final Log log = LogFactory.getLog(MailEngine.class);
-
-
- private VelocityEngine velocityEngine;
- private MailSender mailSender;
-
-
-
-
-
-
- public void setMailSender(MailSender mailSender) {
- this.mailSender = mailSender;
- }
-
- public void setVelocityEngine(VelocityEngine velocityEngine) {
- this.velocityEngine = velocityEngine;
- }
-
-
-
-
-
-
-
- public String generateEmailContent(String templateName, Map map) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- try {
- return VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, templateName, map);
- } catch (VelocityException e) {
- log.error("Error while processing Vilocity template ", e);
- }
-
- return null;
- }
-
-
-
-
-
-
-
-
-
-
-
- public void sendMessage(String[] emailAddresses, String fromEmail,
- String bodyText, String subject, String attachmentName,
- ClassPathResource resource) throws MessagingException {
- MimeMessage message = ((JavaMailSenderImpl) mailSender)
- .createMimeMessage();
-
-
- MimeMessageHelper helper = new MimeMessageHelper(message, true);
-
- helper.setTo(emailAddresses);
- if(fromEmail != null){
- helper.setFrom(fromEmail);
- }
- helper.setText(bodyText, true);
- helper.setSubject(subject);
-
- if(attachmentName!=null && resource!=null)
- helper.addAttachment(attachmentName, resource);
-
- ((JavaMailSenderImpl) mailSender).send(message);
- }
-
-
-
-
-
- public void send(SimpleMailMessage msg) {
- try {
- ((JavaMailSenderImpl) mailSender).send(msg);
- } catch (MailException ex) {
-
- log.error(ex.getMessage());
- }
- }
-
-
-
-
-
-
-
-
- public void send(SimpleMailMessage msg, String templateName, Map model) {
-
- String content = generateEmailContent(templateName, model);
- MimeMessage mimeMsg = null;
- try {
- mimeMsg = ((JavaMailSenderImpl) mailSender).createMimeMessage();
- MimeMessageHelper helper = new MimeMessageHelper(mimeMsg, true, "utf-8");
- helper.setTo(msg.getTo());
-
- if(msg.getSubject()!=null)
- helper.setSubject(msg.getSubject());
-
- if(msg.getFrom()!=null)
- helper.setFrom(msg.getFrom());
-
- helper.setText(content, true);
-
- ((JavaMailSenderImpl) mailSender).send(mimeMsg);
- } catch (MessagingException ex) {
- log.error(ex.getMessage(), ex);
- }
-
- }
- }
-
- 发送邮件:
- SimpleMailMessage message = (SimpleMailMessage) getBean("mailMessage");
- message.setTo(user.getName() + "<" + user.getEmail() + ">");
-
- Map model = new HashMap();
- model.put("user", user);
-
- MailEngine engine = (MailEngine)getBean("mailEngine");
-
- engine.send(message, "notifyUser.vm", model);
-
-
-
- 以上的User为用户类。
xml 代码
- 模板:
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <title>用户注册通知title>
- head>
- <body>
- <p>${user.name} 您好,恭喜您,已经成为本站会员!p>
- <table>
- <tr><td>用户名:td><td>${user.name}td>tr>
- <tr><td>密码:td><td>${user.password}td>tr>
- table>
- body>
- html>
分享到:
相关推荐
java生成word freemarker javaweb 中对word文件写成模板 然后通过freemarker调用 生成word文件下载
亲测可用,利用freemaker处理excel模板,导入数据,myeclipse
spring mvc+freemaker 项目开发实例,很实用,帮助开发者完全掌握整合架构!
项目描述 管理员:医生管理,患者管理,药品管理,患者预约管理,病史管理,住院信息管理,管理员管理 医生:查看对应预约患者,查看病史,...spring boot+spring mvc+mybatis+shrio+jquery+layui+freemarker+bootstrap
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 ... FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库 FreeMarker是免费的
通过springboot 整合freemarker模板引擎,自动发送html格式邮件
spring jsp freemaker sitemesh
Spring MVC配置Freemarker全局变量,实现应用全路径
springsecurity(用spring ibatis freemaker)实现的权限管理页面, 里头包括数据库脚本和原代码 主要参考http://blog.csdn.net/k10509806/article/details/6369131 这个人的文章做的
FreeMaker解析Word模板(含图片)生成Word文档
structs2 + spring2 + hibernate3 +freemaker + Ajax 其中包括Jquery+Ajax等最新技术 实现的完整项目实例,从中可以学得很多技术知识,只此一家别 无二家. 想学好java_Web开发的就赶紧下载吧 (己包含了数据库的文件,...
springsecurity(用spring ibatis freemaker)实现的用户自定义的权限管理页面, 里头包括数据库脚本 和原数据 和原代码 主要参考http://blog.csdn.net/k10509806/article/details/6369131 这个人的文章做的
采用Spring,Mybatis作为持久层,FreeMaker静态化处理页面输出的简单Demo
freemaker安装软件和freemaker中文文档的pdf,绝对好用
spring-mvc-沙盒 Spring MVC 和 Freemaker 沙盒
ext + spring Json view + springMVC + Freemaker
freemaker 动态生成word表格,插入图片