gpt4 book ai didi

spring - 将内联图像添加到 spring 电子邮件

转载 作者:行者123 更新时间:2023-12-04 15:55:22 25 4
gpt4 key购买 nike

如何使用本地主机或服务器添加要包含在使用 Thymeleaf 通过 Spring 发送的电子邮件中的图像?

这是我的 controllerMail.java:

final Map<String, String> inlineResources = new HashMap<String, String>();
Set<String> folderPath = new TreeSet<>();
for (File file : files) {
certificateFile = file.getCertificateFile();
String img = certificateFile.toString();
inlineResources.put("file", img);
}

inlineResources.put("img1", "/template/email/img/myImg.png");

这是我的 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>

证书文件返回此路径:/srv/dev/contents/jpgCache/certificate/10000/certificateName.jpg

因此,我的 mail.html 位于我的项目中的 src/main/resources 中的/template/email 中。在这种情况下,img1 在电子邮件中是正确的(它位于相同的路径/template/email/img),但文件返回此日志错误:

无效资源:/srv/dev/contents/jpgCache/certificate/10000/certificateName.jpg

失败消息:javax.mail.MessagingException:发送消息时出现 IOException; 嵌套异常是: java.io.FileNotFoundException: 类路径资源 [/srv/dev/contents/jpgCache/certificate/10000/certificateName.jpg] 无法打开,因为它不存在

我该如何解决这个问题?

虽然将此文件作为电子邮件的附件可以正常工作。

最佳答案

这个问题的解决方案是在“pathImg”之前使用“file:”:

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

关于spring - 将内联图像添加到 spring 电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com