使用freemarker制作邮件模版

在实际的开发中,发送电子邮件是件很经常的事情,例如你做一个网站,当用户注册的时候需要把发封邮件给用户,通知他注册成功或者其他的,再比如,在点上商务网站中,用户下订单需要发送邮件告知用订单状态什么的,发货了也要发邮件通知用户已发货,等等,很多时候我们都是需要将相同的内容发送给许多用户,无外乎改变下邮件中的用户名,帐号,订单号什么的,其他的都可以做成模版,这样也方便美工美化邮件内容,方便文档人员设计邮件用语,以前我们发邮件的时候都是使用freemarker做成模版,现在我来简单的介绍下,其实很简单,发送邮件呢,我用Apache common-email,这个jar包,你也可以用其他你熟悉的

1、首先我们来建一个简单的java项目,取什么名字由你心情来决定,建好好把下面几个包加到classpath中,activation.jar、commons-email-1.2.jar、mail.jar和freemarker-2.3.19.jar,这几个jar包网上都能找的到,如果找不到或者不想找,可以联系我,我会发给你

2、在跟目录下新建一个template(你也可以叫其他名字)文件夹,用来放我们的模版,再在这个文件夹下建一个template.ftl文件,这就是我们的模版,我们模仿下注册成功后发邮件给用户,告诉他用户名和密码,很简单,内容就一句话:

  1. 您好 ${user} 欢饮您注册我们网站 ,你的帐号是${account},请妥善保管好您的帐号,谢谢!  


3、建一个邮件发送类,我叫它mail

  1. package com.test.mail;  
  2.   
  3. import org.apache.commons.mail.EmailException;  
  4. import org.apache.commons.mail.SimpleEmail;  
  5.   
  6. public class Mail {  
  7.     private SimpleEmail email = new SimpleEmail();  
  8.     public Mail(){  
  9.         //设置邮件发送的服务器    
  10.         email.setHostName("你的邮件服务器");  
  11.         //设置邮件服务器认证账户名和密码  
  12.         email.setAuthentication("你的账户名""你的密码");  
  13.         email.setCharset("UTF-8");  
  14.     }  
  15.     /** 
  16.      * 设置邮件接受者 
  17.      * @param to 
  18.      * @throws EmailException 
  19.      */  
  20.     public void addTo(String to) throws EmailException{  
  21.         email.addTo(to);  
  22.     }  
  23.     /** 
  24.      * 设置邮件发送者 
  25.      * @param from 
  26.      * @throws EmailException 
  27.      */  
  28.     public void setFrom(String from) throws EmailException{  
  29.         email.setFrom(from);  
  30.     }  
  31.     /** 
  32.      * 设置邮件标题 
  33.      * @param subject 
  34.      */  
  35.     public void setSubject(String subject){  
  36.         email.setSubject(subject);  
  37.     }  
  38.     /** 
  39.      * 设置邮件内容 
  40.      * @param content 
  41.      * @throws EmailException 
  42.      */  
  43.     public void setContent(String content) throws EmailException{  
  44.         email.setMsg(content);  
  45.     }  
  46.     /** 
  47.      * 发送你的邮件 
  48.      * @throws EmailException 
  49.      */  
  50.     public void send() throws EmailException{  
  51.         email.send();  
  52.     }  
  53.       
  54. }  


4、再写个测试类来测试下我们的邮件发送类

  1. package junit.test;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5. import java.io.StringWriter;  
  6. import java.util.HashMap;  
  7. import java.util.Map;  
  8.   
  9. import org.apache.commons.mail.EmailException;  
  10. import org.junit.Test;  
  11.   
  12. import com.test.mail.Mail;  
  13. import freemarker.template.Configuration;  
  14. import freemarker.template.Template;  
  15. import freemarker.template.TemplateException;  
  16.   
  17.   
  18. public class MailTest {  
  19.     @Test  
  20.     public void sendTest(){  
  21.         Mail mail = new Mail();  
  22.         //取得freemarker配置实例  
  23.         Configuration configuration = new Configuration();  
  24.         try {  
  25.             //设置模版所在文件夹  
  26.             configuration.setDirectoryForTemplateLoading(new File("template"));  
  27.             //取得我们模版文件  
  28.             Template t = configuration.getTemplate("template.ftl");  
  29.             Map<String, Object> rootMap = new HashMap<String, Object>();  
  30.             rootMap.put("user""张三");  
  31.             rootMap.put("account""1234546");  
  32.             StringWriter writer = new StringWriter();  
  33.             t.process(rootMap, writer);  
  34.             mail.addTo("xxx@xx.com");  
  35.             mail.setFrom("xxx@xx.com");  
  36.             mail.setSubject("注册成功");  
  37.             mail.setContent(writer.toString());  
  38.             mail.send();  
  39.         } catch (EmailException e) {  
  40.             e.printStackTrace();  
  41.         } catch (IOException e) {  
  42.             e.printStackTrace();  
  43.         } catch (TemplateException e) {  
  44.             // TODO Auto-generated catch block  
  45.             e.printStackTrace();  
  46.         }  
  47.     }  
  48. }  
  49.   
  50.    


5、跑一个,哈哈,邮件发送出去了,也收到了!很简单吧!


转自:http://blog.csdn.net/longtian1213/article/details/7901484

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值