`
longgangbai
  • 浏览: 7341016 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring email使用Velocity作为模板應用

阅读更多

發送纯文本的郵件:

备注:velocity为classpath中存放模板的文件夹

velocity中存在的email模板text.vm

text.vm内容如下:

你好!${me} 这是模板生成的邮件。

 

 

重点代码如下:

package cn.com.unusap.unutrip.spring.email;

import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.exception.VelocityException;
import org.springframework.mail.MailSender;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.ui.velocity.VelocityEngineUtils;

/**
 *
 * @author longgangbai
 *
 */
public class VelocityTemplateMailMessage {

 protected static final Log log = LogFactory
   .getLog(VelocityTemplateMailMessage.class);

 private MailSender mailSender;

 private SimpleMailMessage message;

 private VelocityEngine velocityEngine;

 public void setVelocityEngine(VelocityEngine velocityEngine) {
  this.velocityEngine = velocityEngine;
 }

 public void setMailSender(MailSender mailSender) {
  this.mailSender = mailSender;
 }

 public void setMessage(SimpleMailMessage message) {
  this.message = message;
 }

 public void sendEmail(Map model) {
  message.setTo("wuxc@unutrip.com");
  message.setSubject("subject");
  String result = null;
  try {
   result = VelocityEngineUtils.mergeTemplateIntoString(
     velocityEngine, "/velocity/text.vm", model);

//model存储模板中使用的对象的
  } catch (VelocityException e) {
   e.printStackTrace();
  }
  message.setText(result);
  mailSender.send(message);
 }
}

 

applicationContext-velocity.xml配置如下

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 <!-- For mail settings and future properties files -->
 <bean id="propertyConfigurer"
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <list>
    <value>classpath:mail.properties</value>
   </list>
  </property>
 </bean>

 <bean id="mailSender"
  class="org.springframework.mail.javamail.JavaMailSenderImpl">
  <property name="host">
   <value>${mail.host}</value>
  </property>
  <property name="username">
   <value>${mail.username}</value>
  </property>
  <property name="password">
   <value>${mail.password}</value>
  </property>
 </bean>

 <bean id="mailMessage"
  class="org.springframework.mail.SimpleMailMessage">
  <property name="from">
   <value>${mail.from}</value>
  </property>

 </bean>
 <!-- Configure Velocity for sending e-mail 制定發送郵件的模板的编码格式使用utf-8支持中文 -->
 <bean id="velocityEngine"
  class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
  <property name="velocityProperties">
   <props>
    <prop key="resource.loader">class</prop>
    <prop key="class.resource.loader.class">
     org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
    </prop>
    <prop key="velocimacro.library"></prop>
    <prop key="input.encoding">UTF-8</prop>
    <prop key="output.encoding">UTF-8</prop>
    <prop key="default.contentType">
     text/html; charset=UTF-8
    </prop>
   </props>
  </property>
 </bean>

 <bean id="templateMail"
  class="cn.com.unusap.unutrip.spring.email.VelocityTemplateMailMessage">
  <property name="mailSender" ref="mailSender" />
  <property name="message" ref="mailMessage" />
  <property name="velocityEngine" ref="velocityEngine" />
 </bean>
</beans>

 

测试代码:

ApplicationContext appctx = new ClassPathXmlApplicationContext(
    "/applicationContext-velocity.xml");
  RegistrationService vtmm = (RegistrationService) appctx
    .getBean("registrationService");
  Order order = new Order();
  order.setContent("xiao bai");
  order.setDate(new Date());
  order.setEmail("wuxc@unutrip.com");
  order.setOrderId("N0001");
  order.setUsername("wu xiaochao ");
  vtmm.register(order);

 

郵件配置:

classpath路径下mail.properties内容如下:

mail.from=longgangbai@xxxx.com
mail.host=mail.xxx.com
mail.password=xxxx
mail.smtp.auth=true
mail.smtp.timeout=25000
mail.username=xxxxx

分享到:
评论

相关推荐

    简单学习使用Spring+Velocity发送邮件

    本教程将围绕如何使用Spring框架与Velocity模板引擎来实现邮件发送功能进行详细讲解。 首先,让我们理解Spring框架的邮件发送服务。Spring提供了`JavaMailSender`接口,该接口提供了发送邮件的基本方法,如`send...

    spring+velocity发送邮件

    这一过程涉及到Spring框架的基本配置、Velocity模板引擎的使用以及JavaMail API的应用。 ### Spring框架与Velocity简介 #### Spring框架 Spring框架是一个轻量级的Java开发框架,它主要为简化企业级应用开发而设计...

    SpringBoot集成Mybatis,velocity模板

    5. **使用Velocity模板**:创建Velocity模板文件(如`templates/email.vm`),然后在服务类中使用VelocityContext填充数据,并通过VelocityEngine渲染模板。 ```java // EmailService.java public void sendEmail...

    Spring中使用FreeMaker或Vilocity模板发送邮件

    总结来说,Spring结合FreeMarker或Velocity模板引擎可以方便地实现动态生成邮件内容,提供了一种灵活的方式处理复杂格式的邮件。开发者可以根据项目需求和团队熟悉度选择适合的模板引擎。在实际开发中,还需要注意...

    Spring Email 发送

    我们将涉及Spring的Java配置和Velocity模板引擎来创建动态邮件内容。 首先,我们需要引入必要的依赖。在Spring项目中,我们通常会添加`spring-context`和`spring-context-support`库,它们包含了处理邮件发送功能的...

    Velocity 应用示例

    ** Velocity 概述** Velocity 是一个开源的 Java 模板引擎,它允许开发者将静态文本与动态内容分离,使得Web...在实际项目中,Velocity 还可以与其他框架如 Struts、Spring MVC 等集成,提供更强大的模板渲染能力。

    springJavaEmail:Spring集成Velocity 发送Email

    在这个项目"springJavaEmail:Spring集成Velocity发送Email"中,我们将探讨如何利用Spring和Velocity模板引擎来创建和发送带有动态内容的电子邮件。 首先,让我们理解Spring的JavaMailSender接口。这个接口是Spring...

    邮件模版 velocity

    ### 邮件模板 Velocity ...通过上述知识点的学习,您可以更好地理解 Velocity 模板引擎的工作原理及其在 Spring 框架下的集成应用。无论是对于邮件模板的开发还是其他类型模板的创建,Velocity 都能提供强大的支持。

    Velocity之WEB(Object,List,Map)

    Velocity模板语言(VTL)是一种简单的、非脚本式的语言,它的核心思想是“分离关注点”——设计人员负责页面外观,而开发者处理数据和逻辑。VTL通过引用Java对象的属性或方法来插入动态内容。 **Velocity与Objects*...

    Spring进阶—如何用Java代码实现邮件发送

    2. 将Velocity模板文件放在类路径(`classpath`)中。 3. 使用Spring提供的支持类,如`VelocityTemplateMessage`,结合数据模型创建邮件内容。 4. 将生成的内容传递给`MailSender`接口进行发送。 通过这种方式,开发...

    spring boot+mail邮件服务学习demo项目源码

    理解并熟练使用Spring Boot的邮件服务功能,能够为你的应用增加更多价值。 以上就是Spring Boot结合Spring Mail邮件服务的学习demo项目所涉及的主要知识点。通过这个项目,开发者可以深入理解如何在实际应用中集成...

    velocity模版技术

    在实际应用中,Velocity通常与Spring MVC、Struts等Web框架结合使用,为Web应用程序提供视图层的解决方案。Velocity模版文件(通常以`.vm`为扩展名)会被解释并合并到HTML或其他输出格式中,生成最终的动态网页内容...

    java程序套用网页模板

    在Spring MVC中,模板引擎是一个重要的组成部分,常见的有FreeMarker、Thymeleaf和Velocity等。这些模板引擎允许我们将静态HTML模板与Java对象的数据结合起来,生成最终的HTML响应。例如,FreeMarker使用 `${}` 符号...

    springboot实例

    3. **Thymeleaf 或者 Velocity**:Spring Boot 可以与多种模板引擎集成,这里可能使用了 Thymeleaf 或 Velocity 来渲染登录页面。这些模板引擎允许我们在 HTML 中嵌入表达式,动态生成内容。 4. **Spring Security*...

    SpringBoot配置Email发送功能实例

    六、 velocity模板引擎 Velocity是一个基于Java的模板引擎框架,提供了模板语言,可以使用在Java中定义的对象和变量上。它是邮件模板的主要应用场景。 七、 总结 SpringBoot配置Email发送功能实例提供了一个简单...

    使用Spring的JAVA Mail支持简化邮件发送功能

    Spring为开发者提供了便捷的方式来发送电子邮件,包括简单的文本邮件、带有附件的邮件以及使用模板引擎如Velocity或Freemarker来定制邮件内容。 首先,确保你的项目包含了Spring的相关库以及Java Mail API的JAR包。...

    SpringMvc介绍及案例

    Spring MVC 可以与各种模板引擎集成,如 Thymeleaf、Freemarker、Velocity 等,用于动态生成 HTML。 ```html &lt;!-- userDetails.html (Thymeleaf) --&gt; ${user.name}"&gt;User Name ${user.email}"&gt;User Email ``` ...

    springboot

    SpringBoot是Spring框架的一种简化和...在实际开发中,还可以结合Thymeleaf、Freemarker或Velocity等模板引擎来生成动态HTML页面,或者使用RESTful API设计,配合Swagger生成API文档,提高开发效率和应用的可维护性。

    javaweb邮箱验证升级训练及源码,附ssm邮件验证简单案例

    除了基础的邮箱验证,还可以扩展功能,如使用模板邮件支持多语言,或者添加短信验证作为备选方案,提高用户体验。 通过这个项目,你可以深入了解SSM框架在实际开发中的运用,以及如何实现邮箱验证这一实用功能,...

Global site tag (gtag.js) - Google Analytics