spring 邮件 发送模板

感谢  http://blog.csdn.net/voyage_mh1987/article/details/5785595

环境

 

源码分析

  1. package com.macower.spring.jmail;  
  2.   
  3.   
  4. import java.io.IOException;  
  5. import java.util.HashMap;  
  6. import java.util.Map;  
  7.   
  8. import javax.mail.MessagingException;  
  9. import javax.mail.internet.MimeMessage;  
  10.   
  11. import org.springframework.mail.javamail.JavaMailSender;  
  12. import org.springframework.mail.javamail.MimeMessageHelper;  
  13. import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;  
  14. import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;  
  15.   
  16. import freemarker.template.Template;  
  17. import freemarker.template.TemplateException;  
  18.   
  19. public class FreeMarkService {  
  20.     private JavaMailSender sender;  
  21.     private FreeMarkerConfigurer  freeMarkerConfigurer = null;  
  22.   
  23.     public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {  
  24.         this.freeMarkerConfigurer = freeMarkerConfigurer;  
  25.     }  
  26.     /** 
  27.      * 添加模板内容 
  28.      * @param content 
  29.      * @return 
  30.      */  
  31.     private String getMailText(String content){  
  32.         String htmlText = "";  
  33.         Map map  = new HashMap();  
  34.         map.put("content",content);  
  35.         Template tpl    = null;  
  36.         try {  
  37.             tpl =  freeMarkerConfigurer.getConfiguration().getTemplate("reg.ftl");//加载资源文件  
  38.             htmlText = FreeMarkerTemplateUtils.processTemplateIntoString(tpl, map);//加入map到模板中 对应${content}  
  39.         } catch (IOException e) {             
  40.             e.printStackTrace();  
  41.         } catch (TemplateException e) {           
  42.             e.printStackTrace();  
  43.         }  
  44.         return htmlText;          
  45.     }  
  46.       
  47.     public void sendTemplate(MailSenderInfo  info) throws MessagingException{  
  48.         MimeMessage msg = sender.createMimeMessage();  
  49.         // false表示非marltipart,UTF-8为字符编码  
  50.         MimeMessageHelper helper = new MimeMessageHelper(msg, false"UTF-8");  
  51.         helper.setSubject(info.getSubject());  
  52.         helper.setFrom(info.getFromAddress());  
  53.         helper.setTo(info.getToAddress());  
  54.         helper.setText(this.getMailText(info.getContent()), true);// 设置为true表示发送的是HTML  
  55.         sender.send(msg);  
  56.           
  57.     }  
  58.     public void setSender(JavaMailSender sender) {  
  59.         this.sender = sender;  
  60.     }  
  61.   
  62.   
  63. }  

 

reg.ftl文件内容

  1. <html>  
  2. <head>  
  3. <meta http-equiv="content-type" content="text/html;chartset=utf-8">  
  4. </head>  
  5. <body>  
  6. 尊敬的 用户:  
  7. 您好欢迎使用本邮件系统!  
  8. <font size=20 color='red'>  
  9. 以下是内容:  
  10. ${content}  
  11. </font>  
  12. </body>  
  13. </html>  

 

 

 测试发送邮件

 

  1. package com.macower.spring.jmail;  
  2. import org.springframework.context.ApplicationContext;  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  4.   
  5. public class TestSendMail {  
  6.     public static void main(String[] args) throws Exception {  
  7.         ApplicationContext ctx = new ClassPathXmlApplicationContext(  
  8.                 "application*.xml");  
  9.         FreeMarkService sss = (FreeMarkService) ctx  
  10.                 .getBean("freeMarkService");  
  11.         MailSenderInfo mailInfo = new MailSenderInfo();  
  12.         // 这个类主要是设置邮件  
  13.   
  14.         mailInfo.setMailServerHost("smtp.qq.com");// 服务器地址  
  15.         mailInfo.setMailServerPort("25");// 端口  
  16.         mailInfo.setValidate(true); // 是否验证,这个地方是必须的  
  17.         mailInfo.setFromAddress("921747919@qq.com");// 这个是你的邮箱  
  18.                                                     // ,在程序发送一方需对应,就是你在配置文件的发送邮箱的名称  
  19.         mailInfo.setToAddress("894759228@qq.com");// 目的地  
  20.         mailInfo.setSubject("这是一封模板邮件");  
  21.         mailInfo.setContent("模板邮件测试内容");  
  22.         sss.sendTemplate(mailInfo);  
  23.         System.out.println("模板邮件发送完毕");  
  24.   
  25.     }  
  26. }  

 

配置文件

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <beans xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop"  
  6.     xmlns:tx="http://www.springframework.org/schema/tx"  
  7.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
  8.            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd  
  9.            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">  
  10.     <bean id="sender"  
  11.         class="org.springframework.mail.javamail.JavaMailSenderImpl">  
  12.         <property name="host" value="smtp.qq.com" />  
  13.         <property name="username" value="921747919@qq.com" /><!-- 这个地方输入的是你的邮件地址 -->  
  14.         <property name="password" value="对应的密码" />  
  15.         <property name="javaMailProperties">  
  16.             <props>  
  17.                 <prop key="mail.smtp.auth">true</prop>  
  18.             </props>  
  19.         </property>  
  20.     </bean>  
  21.     <!-- 定义自定义的类进行数据的注入 -->  
  22.     <bean id="freeMarkService"  
  23.         class="com.macower.spring.jmail.FreeMarkService">  
  24.         <property name="sender" ref="sender" />  
  25.         <property name="freeMarkerConfigurer"  
  26.             ref="freeMarkerConfigurer" />  
  27.     </bean>  
  28.     <!-- 配置freeMarkerConfigurer进行属性值的注入 -->  
  29.     <bean id="freeMarkerConfigurer"  
  30.         class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  
  31.         <property name="templateLoaderPaths"  
  32.             value="classpath:mailTemplate" />  
  33.         <property name="freemarkerSettings">  
  34.             <props>  
  35.                 <prop key="template_update_delay">1800</prop><!-- 模板更新延时 -->  
  36.                 <prop key="default_encoding">UTF-8</prop>  
  37.                 <prop key="locale">zh_CN</prop>  
  38.             </props>  
  39.         </property>  
  40.   
  41.     </bean>  
  42. </beans>  

 

 

 

测试结果

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值