将图像添加到本地路径的电子邮件中

时间:2017-04-05 12:06:23

标签: javascript string spring thymeleaf email-attachments

如何使用服务器内部的路径添加图片,将其包含在通过Spring与Thymeleaf一起发送的电子邮件中?

这是我的控制者:

final Map<String, String> inlineResources = new HashMap<String, String>();
Set<String> folderPath = new TreeSet<>();
		for (File file : files) {

			... some previous code ()			
			
			StringBuilder pathFile = new StringBuilder(config.getFileCachePath());
			pathFile.append("/").append(folder.getId()).append("/").append(certificateFile.getName());
			folderPath.add(pathCertificate);
		}
    
    String folderPathString = StringUtils.collectionToCommaDelimitedString(folderPath);
    
    inlineResources.put("img1", "/template/email/img/myImg.png");
    inlineResources.put("file", "folderPath");

这是我的html电子邮件:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
    <head>
        <title th:remove="all">Title</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body style="font-family:Trebuchet MS;">
 	   
 	   <p>TEXT EMAIL</p>
 	   <img style="max-width: 100%;" th:src="'cid:img1'" />
 	   <img style="max-width: 100%;" th:src="'cid:file'" />
    </body>
</html>

在这种情况下,img1加载正确,而th:src =“'cid:file'”未加载。

在folderPath.add(pathCertificate);我有这个错误:

Set类型中的方法add(String)不适用于参数(StringBuilder)

我该如何解决问题?

1 个答案:

答案 0 :(得分:0)

此问题的解决方案是使用&#34; file:&#34;:

String pathImg = certificateFile.toString().replace('\\', '/'); inlineResources.put("img", "file:"+pathImg);