使用邮件模板(freemarker.jar)发送邮件

1.把freemarker.jar架包添加到项目中

2.创建模板文件,以*.ftl(后缀名是ftl)命名,模板示例如下

 1 <html>
 2 <head>
 3     <meta http-equiv="content-type" content="text/html;charset=utf-8">
 4 </head>
 5 <body>
 6     <font color="blue" size="4" face="Arial">
 7      尊敬的${user}:
 8     </font>
 9     <br/><br/>
10         <font color="blue" size="4" face="Arial">
11         &nbsp;&nbsp;恭喜您使用系统!请保管您的账号,如果登录时忘记密码
12         可以在网站登录页找回。<br/>
13         <br/><br/>系统管理员
14         </font>
15 </body>
16 </html>

3.发送邮件示例

 1 package cn.bd.mail.template;
 2
 3 import java.io.IOException;
 4 import java.util.HashMap;
 5 import java.util.Map;
 6
 7 import javax.mail.MessagingException;
 8 import javax.mail.internet.MimeMessage;
 9
10 import org.springframework.mail.javamail.JavaMailSender;
11 import org.springframework.mail.javamail.MimeMessageHelper;
12 import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
13 import freemarker.template.Configuration;
14 import freemarker.template.Template;
15 import freemarker.template.TemplateException;
16
17 public class MailService {
18     private JavaMailSender mailSender;
19     private Configuration freeMarkerConfiguration;
20     public void setMailSender(JavaMailSender mailSender) {
21         this.mailSender = mailSender;
22     }
23     public void setFreeMarkerConfiguration(Configuration freeMarkerConfiguration) {
24         this.freeMarkerConfiguration = freeMarkerConfiguration;
25     }
26
27     private String getMailText(){
28         String htmlText="";
29         try{
30             //获取模板实例
31             Template template=freeMarkerConfiguration.getTemplate("mail.ftl");//mail.ftl就是模板文件
32             //通过Map传递动态数据
33             Map map=new HashMap();
34             map.put("user", "测试");
35             //解析模板文件
36             htmlText=FreeMarkerTemplateUtils.processTemplateIntoString(template, map);
37         }catch(IOException e){
38             e.printStackTrace();
39         }catch(TemplateException e){
40             e.printStackTrace();
41         }catch(Exception e){
42             e.printStackTrace();
43         }
44         return htmlText;
45     }
46
47     public void sendMail() throws MessagingException{
48         MimeMessage mimeMessage=mailSender.createMimeMessage();
49         MimeMessageHelper helper=new MimeMessageHelper(mimeMessage,true,"UTF-8");
50         helper.setFrom("[email protected]");//发送人
51         helper.setTo("1875[email protected]");//邮件接收人
52         helper.setSubject("标题....");
53         helper.setText(getMailText(),true);//设置HTML格式邮件内容
54         mailSender.send(mimeMessage);
55     }
56
57 }

4.Spring容器的配置

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans
 3     xmlns="http://www.springframework.org/schema/beans"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xmlns:p="http://www.springframework.org/schema/p"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans
 7                         http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
 8
 9     <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
10         <property name="host" value="smtp.163.com"></property> <!-- 服务器名 -->
11         <property name="port" value="25"></property> <!-- 端口号 -->
12         <property name="username" value="13599057417"></property><!-- 用户名 -->
13         <property name="password" value="luofuxiang"></property><!-- 密码 -->
14         <property name="protocol" value="smtp"></property> <!-- 协议 -->
15         <property name="defaultEncoding" value="utf-8"></property>
16         <property name="javaMailProperties">
17             <props>
18                 <prop key="mail.smtp.auth">true</prop>
19             </props>
20         </property>
21     </bean>
22     <bean id="freeMarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean">
23         <property name="templateLoaderPath" value="/cn/bd/mail/template"></property> <!-- 指定模板(mail.ftl)路径 -->
24         <!-- 设置FreeMarker环境变量 -->
25         <property name="freemarkerSettings">
26             <props>
27                 <prop key="default_encoding">UTF-8</prop>
28             </props>
29         </property>
30     </bean>
31     <!-- 配置bean:MailService -->
32     <bean id="mailService" class="cn.bd.mail.template.MailService">
33         <property name="mailSender" ref="mailSender"></property><!-- 为属性注入值 -->
34         <property name="freeMarkerConfiguration" ref="freeMarkerConfiguration"></property><!-- 给属性注入值 -->
35     </bean>
36 </beans> 
时间: 2024-11-08 21:08:09

使用邮件模板(freemarker.jar)发送邮件的相关文章

[JAVA教程] Velocity1.7邮件模板 , Jodd-mail3.7发送邮件

一.需求描述:        日前,做了一个发送客户账单的功能,邮件模板采用自定义,生成vm文件,保存至redis,    采用jodd-mail发送邮件,查询用户账单数据,账单明细,缓存加载模板并渲染数据,推送邮件至客户端.    这里给大家推荐一下,jodd是一款很优秀的分类工具插件,邮件服务可以说是使用超级简单,    但是性能很不错,实现代码干净利落;    二.Velocity的基本代码实现 VelocityEngine ve = new VelocityEngine();    ve

JIRA 本地环境搭建、插件开发、邮件模板定制

系统 Mac 语言 JAVA 1.首先安装本地开发环境,JIRA提供SDK,供本地运行及开发. SDK安装参考文档:https://developer.atlassian.com/docs/getting-started/set-up-the-atlassian-plugin-sdk-and-build-a-project/install-the-atlassian-sdk-on-a-linux-or-mac-system 2.环境搭建好就可以开发插件了. SDK中 JIRA 版本和 实际使用的

Java使用javax.mail.jar发送邮件并同意发送附件

因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一直都认为作为开发者,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序员发展的重中之重!好啦.闲话就讲到这里.来点实际的. 当一个开发者工作到一定程度后,面向对象的思维就会一直在他的老子里环绕.所以我们先把邮件的常量类.实体类以及工具类等等先该封装

Java使用javax.mail.jar发送邮件

由于Java在开发网页上占有绝大优势,所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必然,网络安全一再安全我们需要把账号的安全级别提到更高!因此这些对于开发人员也就成了必须掌握的技能!我一直都觉得作为开发人员,不怕在开发的过程中遇到多少难题,而是有没有去解决它的勇气和决心,这里多学习就成为了关键,成为了一个程序猿发展的重中之重!好啦,闲话就说到这里,来点实际的! 当一个开发人员工作到一定程度后,面向对象的思维就会一直在他的老子里围绕!所以我们先把邮件的常量类.实体类以及工具类等等先

Magento修改邮件模板内容

Magento 默认邮件模板 都是带着官方的标志和一些官方的基本信息.为了建立品牌形象我们需要把邮件模板中的所有官方信息换成自己的信息.修改步骤如下: 1.找到Magento的邮件模板文件(这里以 en_US为例),如下列文件:magento\app\locale\en_US\template\email\account_new.html:magento\app\locale\en_US\template\email\admin_password_new.html:magento\app\loc

HTML格式自定义OpenCart邮件模板功能插件

HTML格式自定义OpenCart邮件模板功能插件 HTML格式自定义OpenCart邮件模板功能插件 前台演示网址后台登录信息: 用户名: demo 密码: demo后台演示网址型 号: COC-A0003 ¥100.00 税前: ¥100.00购买所需积分: 80 购买数量: +- * 扩充功能安装:              --- 请选择 ---                          自己安装                                         

2017U-Mail邮件营销平台新邮件模板功能

据U-Mail调查表明,企业用户中普遍最关心群发邮件会不会被列入垃圾箱?的确,哪怕你最用功,一旦邮件进了垃圾箱,意味着全盘尽废.业界知名服务商U-Mail一直想用户之所想,急用户之所急,十几年如一日,捕捉市场动向,把握用户痛点需求,孜孜探讨解决之道,持续改进邮件群发平台,在2017年,他们推出的最新版本邮件营销平台,功能更丰富,效果更显著,且以其中一个小功能"邮件模板"的改进为例吧,它不但能节省营销人员时间提高了效率,还减少了邮件进垃圾箱的概率.不妨听小编细细说来: 一.新版U-Mai

邮件模板——开发篇

其实网上有关于邮件模板开发的文章其实不少,但是都是面向开发人员的,对于非技术的同事有一定的门槛,因此我将邮件模板系列分为三个部分,以便朋友们能更快的找到自己需要的.前两篇文章 “科普篇”.“基础篇”分别面向产品设计同事和零基础的使用邮件模板的同事,下面的“开发篇”主要是面向邮件模板的前端开发的同事.“开发篇”参考了不少网上的文章,结合我在开发中遇到的一些坑,做了一些汇总: html: 1.!Doctype声明:为了向前兼容和避免某些浏览器的怪癖,使用html5的!doctype声明,格式如下:<

邮件模板——科普篇

我们平时都有过使用outlook的经历,outlook是微软office家族中的一员,通过outlook管理邮件可以说是非常方便高效的.其强大的邮件管理能力和编辑能力,都是非常出色的.下面我们简单看一下和邮件相关的前端技术. 一般我们编辑邮件,多数情况下会选择使用outlook内部集成的office编辑方式,我们可以像编辑word一样编写一封邮件,这种方式是比较适合编写文本为主的邮件的.这种邮件多以通知.叙述事情为主.格式多为纯文本或简单的图文混排为主.当然还有另外一种编辑方式——前端实现的邮件