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 c061973e0..523265b44 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 @@ -4,9 +4,9 @@ import cn.hutool.core.builder.Builder; import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IoUtil; +import cn.hutool.core.text.StrUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjUtil; -import cn.hutool.core.text.StrUtil; import javax.activation.DataHandler; import javax.activation.DataSource; @@ -248,41 +248,6 @@ public class Mail implements Builder { return setAttachments(attachments); } - /** - * 增加附件或图片,附件使用{@link DataSource} 形式表示,可以使用{@link FileDataSource}包装文件表示文件附件 - * - * @param attachments 附件列表 - * @return this - * @since 4.0.9 - */ - public Mail setAttachments(final DataSource... attachments) { - if (ArrayUtil.isNotEmpty(attachments)) { - final Charset charset = this.mailAccount.getCharset(); - MimeBodyPart bodyPart; - String nameEncoded; - try { - for (final DataSource attachment : attachments) { - bodyPart = new MimeBodyPart(); - bodyPart.setDataHandler(new DataHandler(attachment)); - nameEncoded = attachment.getName(); - if (this.mailAccount.isEncodefilename()) { - nameEncoded = InternalMailUtil.encodeText(nameEncoded, charset); - } - // 普通附件文件名 - bodyPart.setFileName(nameEncoded); - if (StrUtil.startWith(attachment.getContentType(), "image/")) { - // 图片附件,用于正文中引用图片 - bodyPart.setContentID(nameEncoded); - } - this.multipart.addBodyPart(bodyPart); - } - } catch (final MessagingException e) { - throw new MailException(e); - } - } - return this; - } - /** * 增加图片,图片的键对应到邮件模板中的占位字符串,图片类型默认为"image/jpeg" * @@ -333,6 +298,42 @@ public class Mail implements Builder { } } + /** + * 增加附件或图片,附件使用{@link DataSource} 形式表示,可以使用{@link FileDataSource}包装文件表示文件附件 + * + * @param attachments 附件列表 + * @return this + * @since 4.0.9 + */ + public Mail setAttachments(final DataSource... attachments) { + if (ArrayUtil.isNotEmpty(attachments)) { + final Charset charset = this.mailAccount.getCharset(); + MimeBodyPart bodyPart; + String nameEncoded; + try { + for (final DataSource attachment : attachments) { + bodyPart = new MimeBodyPart(); + bodyPart.setDataHandler(new DataHandler(attachment)); + nameEncoded = attachment.getName(); + if (this.mailAccount.isEncodefilename()) { + nameEncoded = InternalMailUtil.encodeText(nameEncoded, charset); + } + // 普通附件文件名 + bodyPart.setFileName(nameEncoded); + if (StrUtil.startWith(attachment.getContentType(), "image/")) { + // 图片附件,用于正文中引用图片 + bodyPart.setContentID(nameEncoded); + bodyPart.setDisposition(MimeBodyPart.INLINE); + } + this.multipart.addBodyPart(bodyPart); + } + } catch (final MessagingException e) { + throw new MailException(e); + } + } + return this; + } + /** * 设置字符集编码 * diff --git a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java index ccf32bf2a..9910f1b46 100755 --- a/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java +++ b/hutool-extra/src/main/java/cn/hutool/extra/template/engine/enjoy/EnjoyEngine.java @@ -71,7 +71,7 @@ public class EnjoyEngine implements TemplateEngine { if(null == this.engine){ init(TemplateConfig.DEFAULT); } - if (ObjUtil.equal(ResourceMode.STRING, this.resourceMode)) { + if (ObjUtil.equals(ResourceMode.STRING, this.resourceMode)) { return EnjoyTemplate.wrap(this.engine.getTemplateByString(resource)); } return EnjoyTemplate.wrap(this.engine.getTemplate(resource)); 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 2899f0ec3..867de0512 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 @@ -66,4 +66,15 @@ public class MailTest { final Properties props = account.getSmtpProps(); Assert.assertEquals("true", props.getProperty("mail.debug")); } + + @Test + @Ignore + public void sendHtmlWithPicsTest() { + HashMap map = new HashMap<>(); + map.put("abc", FileUtil.getInputStream("D:/test/abc.png")); + map.put("abcd",FileUtil.getInputStream("D:/test/def.png")); + + MailUtil.sendHtml("loolly@aliyun.com", "测试", "

邮件来自Hutool测试

", + map); + } }