diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/JakartaMail.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/JakartaMail.java index 8f73611ec..99a74280a 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/mail/JakartaMail.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/JakartaMail.java @@ -268,6 +268,8 @@ public class JakartaMail implements Builder { if (StrUtil.startWith(attachment.getContentType(), "image/")) { // 图片附件,用于正文中引用图片 bodyPart.setContentID(nameEncoded); + // 图片附件设置内联,否则无法正常引用图片 + bodyPart.setDisposition(MimeBodyPart.INLINE); } this.multipart.addBodyPart(bodyPart); } diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java index 2d71b2dcc..535300bf9 100644 --- a/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java @@ -8,10 +8,7 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import javax.activation.DataHandler; -import javax.activation.DataSource; -import javax.activation.FileDataSource; -import javax.activation.FileTypeMap; +import javax.activation.*; import javax.mail.Address; import javax.mail.MessagingException; import javax.mail.Multipart; @@ -273,6 +270,8 @@ public class Mail implements Builder { if (StrUtil.startWith(attachment.getContentType(), "image/")) { // 图片附件,用于正文中引用图片 bodyPart.setContentID(nameEncoded); + // 图片附件设置内联,否则无法正常引用图片 + bodyPart.setDisposition(MimeBodyPart.INLINE); } this.multipart.addBodyPart(bodyPart); } diff --git a/hutool-extra/src/test/java/cn/hutool/extra/mail/JakartaMailTest.java b/hutool-extra/src/test/java/cn/hutool/extra/mail/JakartaMailTest.java index ec0824aac..20b419cff 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/mail/JakartaMailTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/mail/JakartaMailTest.java @@ -38,6 +38,15 @@ public class JakartaMailTest { JakartaMailUtil.sendHtml("hutool@foxmail.com", "测试", "

邮件来自Hutool测试

", map); } + @Test + @Disabled + public void sendHtmlWithImageTest() { + Map map = new HashMap<>(); + InputStream in = getClass().getClassLoader().getResourceAsStream("image/Dromara.png"); + map.put("", in); + JakartaMailUtil.sendHtml("hutool@foxmail.com;li7hai26@outlook.com", "测试", "

邮件来自Hutool测试

", map); + } + @Test @Disabled public void sendHtmlTest() { diff --git a/hutool-extra/src/test/java/cn/hutool/extra/mail/MailTest.java b/hutool-extra/src/test/java/cn/hutool/extra/mail/MailTest.java index 9784b70af..3a29c9ec2 100644 --- a/hutool-extra/src/test/java/cn/hutool/extra/mail/MailTest.java +++ b/hutool-extra/src/test/java/cn/hutool/extra/mail/MailTest.java @@ -38,6 +38,15 @@ public class MailTest { MailUtil.sendHtml("hutool@foxmail.com", "测试", "

邮件来自Hutool测试

", map); } + @Test + @Disabled + public void sendHtmlWithImageTest() { + Map map = new HashMap<>(); + InputStream in = getClass().getClassLoader().getResourceAsStream("image/Dromara.png"); + map.put("", in); + MailUtil.sendHtml("hutool@foxmail.com;li7hai26@outlook.com", "测试", "

邮件来自Hutool测试

", map); + } + @Test @Disabled public void sendHtmlTest() { diff --git a/hutool-extra/src/test/resources/image/Dromara.png b/hutool-extra/src/test/resources/image/Dromara.png new file mode 100644 index 000000000..b5c594ff9 Binary files /dev/null and b/hutool-extra/src/test/resources/image/Dromara.png differ