如何为Java Mail构建HTML模板

时间:2015-01-30 10:42:47

标签: java

我使用java邮件发送html内容以创建html内容。

这就是我所拥有的:

String format = "
<div style=\"font: 100% Verdana, Arial, Helvetica, sans-serif;
background: #eee;
margin: 0;
padding: 20px 0 20px 0;
text-align: center;
color: #000000;\">"
     + "    
<div style=\"width:46em; 
background: #FFFFFF;
margin: 0 auto;
text-align: left; \">"

我还想使用bootstreap或任何其他库来包含内联css的css文件。

如何减少代码以避免使用内联CSS?

1 个答案:

答案 0 :(得分:1)

您可以使用Apache Velocity

你可以这样做:

yourfile.html

<h1 style="color: #00">$entity.header</h1>

MyOwnEntity.java

public class MyOwnEntity{
private String header;

public MyOwnEntity(String header){
    this.header = header;
}

public getHeader(){
    return header;
}}

TemplateLoader.java

public class TemplateLoader {

public static <ENTITY> String loadFilledTemplate(ENTITY entity, String templatePath) throws IOException {
    final Properties p = new Properties();
    p.setProperty("resource.loader", "class");
    p.setProperty("class.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
    Velocity.init(p);

    final VelocityContext context = new VelocityContext();
    context.put("entity", entity);
    final Template template = Velocity.getTemplate(templatePath);
    try (StringWriter writer = new StringWriter()) {
        template.merge(context, writer);
        return writer.toString();
    }
}}

在你的班级

 String format = TemplateLoader.loadFilledTemplate(new MyOwnEntity("custom"), "yourfile.html");