如何将html图像添加到速度模板文件中以发送电子邮件?

时间:2017-01-10 07:04:25

标签: java velocity

我将此包含在我的力度文件中。但它不起作用,

private List<Object> listOfValues;
private List<Object> listOfFilteredValues;

public List<Object> getListOfValues() {
        return listOfValues;
}
public List<Object> getListOfFilteredValues() {
        return listOfFilteredValues;
    }

2 个答案:

答案 0 :(得分:2)

您可以按照指南here

例如,在Velocity模板文件中尝试此操作:

<img src = "cid:${cid}" alt = "Foo">

在Java代码中,尝试:

URL url = new URL("image.png");
String cid = email.embed(url, "Foo");
Map model = new HashMap();
model.put("cid", cid);

答案 1 :(得分:1)

当您的服务器运行时,您可以从request.getContexPath();

获取到服务器的路径

所以在这里你只需要提供图像的休息路径。我已经为我的演示应用程序完成了这个。

 <img border="0" alt="Test" src="${projectPath}/images/logo.jpg"/></a></td> 

现在你必须将projectPath的值设置为你可以通过request.getContexPath();获得的projectPath

现在创建一个Map,您必须在其中添加Key,它将是您在.vm文件中使用的关键字。对于此示例,我们使用了projectPath。

 Map map = new HashMap<>();
 map.add("projectPath",request.getContexPath());
 map.add() // other value that you want to replace in vm file

之后,创建VelocityContext实例,使用像

这样的构造函数参数加载此映射
 VelocityContext velocityContext = new VelocityContext(map);