java - 如何将多个内联 base64 编码图像附加到邮件?
问题描述
我有以下代码
final JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper;
try {
helper = new MimeMessageHelper(mimeMessage, false, "utf-8");
String htmlMsg = "<body><div style="padding-top: 1px"><table
style="width: 100%"> <tr> <td align="left"><img align="left"
src="cid:**image1**" style="margin-left: -7px; width: 50%;"></td>
<td align="right"><img align="right" src="cid:**image2**"
style="margin-left: 100px; width: 50%;"> </td> </tr> </table></div>
<body>"
Multipart multipart = new MimeMultipart("related");
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(htmlMsg, "text/html");
messageBodyPart.setDisposition(BodyPart.INLINE);
multipart.addBodyPart(messageBodyPart);
InternetHeaders headers = new InternetHeaders();
headers.addHeader("Content-Type", "image/png");
headers.addHeader("Content-Transfer-Encoding", "base64");
String base64EncodedImageContentByteArray="encdoe value";
String base64EncodedImageContentByteArray1 = "encoded value";
MimeBodyPart imagePart1 = new MimeBodyPart(headers,
base64EncodedImageContentByteArray.getBytes());
imagePart1.setDisposition(MimeBodyPart.INLINE);
imagePart1.setContentID("image1");
imagePart1.setFileName("image1.jpg");
MimeBodyPart imagePart2 = new MimeBodyPart(headers,
base64EncodedImageContentByteArray1.getBytes());
imagePart2.setDisposition(MimeBodyPart.INLINE);
imagePart2.setContentID("image2");
imagePart2.setFileName("image2.jpg");
multipart.addBodyPart(imagePart1);
multipart.addBodyPart(imagePart2);
multipart.addBodyPart(messageBodyPart);
mimeMessage.setContent(multipart);
mimeMessage.setHeader("MIME-Version", "1.0");
但是当我收到邮件时,第一张图片没有显示,但第二张图片显示在邮件中。对于第一个图像位置,它显示十字。我还需要在邮件中附加多个图像(base64 编码值)
解决方案
推荐阅读
- android - Android Studio API 19:谷歌地方未找到 api 异常 15
- python - 如何在python中将数据表数据框拆分为训练和测试数据集
- c - 为什么我在 sys/stat.h 库中得到“未定义的对 `_stat` 的引用”?
- elasticsearch - 使用关键字词进行 Elasticsearch KNN 搜索
- node.js - 为什么 nodejs 不遵守 pm2 生态系统文件中设置的内存限制
- amazon-web-services - 如何将远程桌面用户限制为 Windows Server 2016 上的单个应用程序?
- php - Php Doctrine:如何避免 DQL 中的完整限定实体名称
- sql - MS Access VBA - SQL 从表单文本框中检索数据
- python - 在数据块中加载 json 响应以触发数据帧时获取 _corrupt_record
- r - 有没有办法通过将一列单词与 R 中的一列句子匹配来合并