使用模版来创建邮件内容

通过前面的示例,所有邮件的内容都是现实定义的,并通过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>

 测试一下看效果:


 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值