通过前面的示例,所有邮件的内容都是现实定义的,并通过message.setText("XXXX")来设置的,如果要改变内容的格式就需要手动的写HTML代码,不易于维护,使用模板可以将业务逻辑和页面分开,易于页面的维护
一、Velocity模版:
定义实现类:
package com.mail.sender;
import com.mail.service.OrderManager;
import org.apache.velocity.app.VelocityEngine;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
import org.springframework.ui.velocity.VelocityEngineUtils;
import javax.activation.MailcapCommandMap;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
/**
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 12-6-13
* Time: 下午2:57
* To change this template use File | Settings | File Templates.
*/
public class SimpleVelocity implements OrderManager{
private JavaMailSender javaMailSender;
private VelocityEngine velocityEngine ;
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void setVelocityEngine(VelocityEngine velocityEngine){
this.velocityEngine = velocityEngine ;
}
private void senderEmail(){
}
public void placeOrder() throws MessagingException {
MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws MessagingException {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(" XXX@qq.com");
message.setFrom("XXX@qq.com");
Map model = new HashMap() ;
model.put("see","Welocoming");
String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine,"/mail.vm",model);
message.setText(text,true);
}
};
this.javaMailSender.send(preparator);
}
}
编写配置文件:
<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>
</props>
</property>
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.qq.com"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="username" value="XXXX@qq.com"/>
<property name="password" value="XXXX"/>
<property name="javaMailProperties">
<value>
mail.smtp.auth=true
</value>
</property>
</bean>
<bean id="simpleVelocity" class="com.mail.sender.SimpleVelocity">
<property name="javaMailSender" ref="mailSender"/>
<property name="velocityEngine" ref="velocityEngine"/>
</bean>
接下来写模版:
<html>
<body>
${see}
</body>
</html>
测试一下看效果:
- 大小: 1 KB
分享到:
相关推荐
可以使用媒体查询来调整在移动设备上的显示,但需要注意,一些邮件客户端不支持媒体查询,所以需要谨慎使用。 6. **字符编码**:确保邮件内容使用正确的字符集,如UTF-8,以支持多种语言和特殊字符。 7. **测试**...
本篇文章将详细讲解如何利用Java实现邮件发送,并结合Apache的相关库来创建邮件发送模板,以提升效率和用户体验。 首先,JavaMail API是Java中用于处理电子邮件的主要库。它提供了丰富的API,可以用来创建、发送和...
首先,这个项目可能使用了某种模板引擎,如FreeMarker或Velocity,来动态生成邮件内容。这些模板引擎允许开发者创建HTML或者其他格式的文本模板,然后将数据模型注入到模板中,生成定制化的邮件内容。例如,你可以...
这可能意味着需要避免使用某些高级CSS特性,转而依赖表格布局来构建内容。 2. **响应式设计**:现代邮件模板应具备响应式设计,能适应不同设备的屏幕尺寸,如手机、平板和桌面电脑。通过媒体查询和灵活的布局,确保...
4. **CSS支持**:尽管Postcards主要用于简化电子邮件模板的创建,但它仍然支持CSS,这意味着开发者可以使用CSS进行更精细的样式调整,以实现特定的设计要求。 5. **导出和集成**:完成设计后,用户可以将模板导出为...
它可以帮助用户在前端创建和编辑邮件模板,包括添加文字、图片、链接等元素。在本项目中,KindEditor被用于让用户在前端界面自由设计邮件的布局和内容,形成自定义的邮件模板。 **邮件模板** 邮件模板是预设的邮件...
2. **创建模板文件**:使用文本编辑器创建一个`.vm`文件,定义邮件内容的结构,并在其中插入VTL表达式。 3. **设置上下文**:在Java代码中,创建一个`VelocityContext`对象,用来存放模板中需要用到的数据。例如,`...
在IT行业中,HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言,它同样被广泛应用于制作电子邮件模板。邮件模板HTML是一种设计精美的、结构化的邮件格式,它可以使电子通讯更具吸引力,提升品牌...
在本文中,我们将深入探讨如何使用Java来创建和发送带有模板的电子邮件。 首先,我们需要理解Java中用于邮件发送的核心API:JavaMail API。这是一个开源库,提供了丰富的接口和类用于构建邮件系统。在JavaMail API...
本资源"简洁的邮件CSS模板_简洁 邮件 邮箱 灰色.zip"提供了一个专门针对电子邮件设计的CSS模板,它具有简洁、灰色调的特点,适用于创建专业且吸引人的电子邮件通讯。 电子邮件设计与普通的网页设计有所不同,因为...
JavaMail API提供了一种标准的方式来处理邮件的发送,而结合模板技术,我们可以创建出更加专业和美观的邮件内容。本示例将详细介绍如何在Java中使用模板发送邮件,以及相关的知识点。 首先,你需要了解JavaMail API...
在电子邮件的日常使用中,有时我们需要批量发送类似内容的邮件,这时设置默认邮件模板就显得尤为重要。Foxmail作为一款功能强大的邮件客户端,提供了创建和管理邮件模板的功能,可以帮助用户更高效地进行邮件群发。...
在C#项目中,我们通常使用编程模板来生成邮件相关的类或文件。 在C#中,T4模板以`.tt`文件形式存在,这个文件包含两部分:模板指令和普通文本。模板指令以`<# #>`包裹,这部分代码会被执行并替换为生成的文本。普通...
5. **设置数据**:根据需要,创建一个字典来存储邮件的动态数据,如`data = {'name': 'John', 'message': 'Hello World!'}`。 6. **渲染邮件**:将数据传递给模板,生成邮件内容,`content = template.render(data)`...
1. **Foxmail邮件模板**:Foxmail允许用户创建自定义模板,这些模板可以包含预设的文本、格式、图片甚至签名,以便在需要时快速生成新的邮件。通过模板,用户无需每次手动输入相同或相似的内容,只需选择相应的模板...
`sendEmailWithFreeMarker`和`sendEmailWithVelocity`方法展示了如何使用这两种模板引擎来生成邮件内容并发送。 总结来说,Spring结合FreeMarker或Velocity模板引擎可以方便地实现动态生成邮件内容,提供了一种灵活...
其次,邮件模板的创建可以借助各种工具,如代码编辑器(如Visual Studio Code)、专门的邮件模板构建器(如MailChimp或Campaign Monitor)或者CMS(内容管理系统)中的内置功能。在创建过程中,需要确保模板内容简洁...
4. **模板引擎**:NodeMailer支持使用模板来创建邮件内容,这样可以保持邮件格式的一致性和动态插入数据。常见的模板引擎有Nunjucks、Pug、Handlebars等。 ### 使用NodeMailer发送带有模板的电子邮件 1. **安装...
在实际应用中,你可能还需要考虑错误处理、邮件附件、多语言支持等问题,以及更复杂的模板引擎如FreeMarker或Velocity来动态生成HTML内容。希望这个概述能帮助你理解并实现自己的Java邮件发送功能。
"邮件系统模板 DIV+CSS"这个主题,指的是使用HTML的结构元素`<div>`和层叠样式表(CSS)来设计和布局电子邮件模板,以实现更灵活、响应式和一致的视觉效果。下面我们将深入探讨这一主题。 首先,`<div>`元素在HTML中...