Looly 6 years ago
parent
commit
de80af155c

+ 2 - 0
CHANGELOG.md

@@ -8,9 +8,11 @@
 ### 新特性
 * 【core 】      解决NumberUtil导致的ambiguous问题(issue#630@Github)
 * 【core 】      BeanUtil.isEmpty()忽略字段支持,增加isNotEmpty(issue#629@Github)
+* 【extra 】     邮件发送后获取message-id(issue#I15FKR@Gitee)
 
 ### Bug修复
 * 【extra】      修复SFTP.upload上传失败的问题
+* 【db】         修复findLike匹配错误问题
 
 -------------------------------------------------------------------------------------------------------------
 

+ 7 - 6
hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java

@@ -349,10 +349,10 @@ public class Mail {
 	/**
 	 * 发送
 	 *
-	 * @return this
+	 * @return message-id
 	 * @throws MailException 邮件发送异常
 	 */
-	public Mail send() throws MailException {
+	public String send() throws MailException {
 		try {
 			return doSend();
 		} catch (MessagingException e) {
@@ -365,12 +365,13 @@ public class Mail {
 	/**
 	 * 执行发送
 	 *
-	 * @return this
+	 * @return message-id
 	 * @throws MessagingException 发送异常
 	 */
-	private Mail doSend() throws MessagingException {
-		Transport.send(buildMsg());
-		return this;
+	private String doSend() throws MessagingException {
+		final MimeMessage mimeMessage = buildMsg();
+		Transport.send(mimeMessage);
+		return mimeMessage.getMessageID();
 	}
 
 	/**

+ 184 - 160
hutool-extra/src/main/java/cn/hutool/extra/mail/MailUtil.java

@@ -14,7 +14,7 @@ import cn.hutool.core.util.StrUtil;
 
 /**
  * 邮件工具类,基于javax.mail封装
- * 
+ *
  * @author looly
  * @since 3.1.2
  */
@@ -23,325 +23,349 @@ public class MailUtil {
 	 * 使用配置文件中设置的账户发送文本邮件,发送给单个或多个收件人<br>
 	 * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
 	 *
-	 * @param to 收件人
+	 * @param to      收件人
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param files 附件列表
+	 * @param files   附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void sendText(String to, String subject, String content, File... files) {
-		send(to, subject, content, false, files);
+	public static String sendText(String to, String subject, String content, File... files) {
+		return send(to, subject, content, false, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人<br>
 	 * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
 	 *
-	 * @param to 收件人
+	 * @param to      收件人
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param files 附件列表
+	 * @param files   附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void sendHtml(String to, String subject, String content, File... files) {
-		send(to, subject, content, true, files);
+	public static String sendHtml(String to, String subject, String content, File... files) {
+		return send(to, subject, content, true, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
 	 * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
 	 *
-	 * @param to 收件人
+	 * @param to      收件人
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml  是否为HTML
+	 * @param files   附件列表
+	 * @return message-id
 	 */
-	public static void send(String to, String subject, String content, boolean isHtml, File... files) {
-		send(splitAddress(to), subject, content, isHtml, files);
+	public static String send(String to, String subject, String content, boolean isHtml, File... files) {
+		return send(splitAddress(to), subject, content, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
 	 * 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔
 	 *
-	 * @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param to      收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param cc      抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param bcc     密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml  是否为HTML
+	 * @param files   附件列表
+	 * @return message-id
 	 * @since 4.0.3
 	 */
-	public static void send(String to, String cc, String bcc, String subject, String content, boolean isHtml, File... files) {
-		send(splitAddress(to), splitAddress(cc), splitAddress(bcc), subject, content, isHtml, files);
+	public static String send(String to, String cc, String bcc, String subject, String content, boolean isHtml, File... files) {
+		return send(splitAddress(to), splitAddress(cc), splitAddress(bcc), subject, content, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送文本邮件,发送给多人
 	 *
-	 * @param tos 收件人列表
+	 * @param tos     收件人列表
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param files 附件列表
+	 * @param files   附件列表
+	 * @return message-id
 	 */
-	public static void sendText(Collection<String> tos, String subject, String content, File... files) {
-		send(tos, subject, content, false, files);
+	public static String sendText(Collection<String> tos, String subject, String content, File... files) {
+		return send(tos, subject, content, false, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送HTML邮件,发送给多人
 	 *
-	 * @param tos 收件人列表
+	 * @param tos     收件人列表
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param files 附件列表
+	 * @param files   附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void sendHtml(Collection<String> tos, String subject, String content, File... files) {
-		send(tos, subject, content, true, files);
+	public static String sendHtml(Collection<String> tos, String subject, String content, File... files) {
+		return send(tos, subject, content, true, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送给多人
 	 *
-	 * @param tos 收件人列表
+	 * @param tos     收件人列表
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml  是否为HTML
+	 * @param files   附件列表
+	 * @return message-id
 	 */
-	public static void send(Collection<String> tos, String subject, String content, boolean isHtml, File... files) {
-		send(tos, null, null, subject, content, isHtml, files);
+	public static String send(Collection<String> tos, String subject, String content, boolean isHtml, File... files) {
+		return send(tos, null, null, subject, content, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送给多人
 	 *
-	 * @param tos 收件人列表
-	 * @param ccs 抄送人列表,可以为null或空
-	 * @param bccs 密送人列表,可以为null或空
+	 * @param tos     收件人列表
+	 * @param ccs     抄送人列表,可以为null或空
+	 * @param bccs    密送人列表,可以为null或空
 	 * @param subject 标题
 	 * @param content 正文
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml  是否为HTML
+	 * @param files   附件列表
+	 * @return message-id
 	 * @since 4.0.3
 	 */
-	public static void send(Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, boolean isHtml, File... files) {
-		send(GlobalMailAccount.INSTANCE.getAccount(), true, tos, ccs, bccs, subject, content, null, isHtml, files);
+	public static String send(Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, boolean isHtml, File... files) {
+		return send(GlobalMailAccount.INSTANCE.getAccount(), true, tos, ccs, bccs, subject, content, null, isHtml, files);
 	}
 
 	// ------------------------------------------------------------------------------------------------------------------------------- Custom MailAccount
+
 	/**
 	 * 发送邮件给多人
 	 *
 	 * @param mailAccount 邮件认证对象
-	 * @param to 收件人,多个收件人逗号或者分号隔开
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param to          收件人,多个收件人逗号或者分号隔开
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void send(MailAccount mailAccount, String to, String subject, String content, boolean isHtml, File... files) {
-		send(mailAccount, splitAddress(to), subject, content, isHtml, files);
+	public static String send(MailAccount mailAccount, String to, String subject, String content, boolean isHtml, File... files) {
+		return send(mailAccount, splitAddress(to), subject, content, isHtml, files);
 	}
 
 	/**
 	 * 发送邮件给多人
 	 *
 	 * @param mailAccount 邮件帐户信息
-	 * @param tos 收件人列表
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param tos         收件人列表
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 */
-	public static void send(MailAccount mailAccount, Collection<String> tos, String subject, String content, boolean isHtml, File... files) {
-		send(mailAccount, tos, null, null, subject, content, isHtml, files);
+	public static String send(MailAccount mailAccount, Collection<String> tos, String subject, String content, boolean isHtml, File... files) {
+		return send(mailAccount, tos, null, null, subject, content, isHtml, files);
 	}
 
 	/**
 	 * 发送邮件给多人
 	 *
 	 * @param mailAccount 邮件帐户信息
-	 * @param tos 收件人列表
-	 * @param ccs 抄送人列表,可以为null或空
-	 * @param bccs 密送人列表,可以为null或空
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param tos         收件人列表
+	 * @param ccs         抄送人列表,可以为null或空
+	 * @param bccs        密送人列表,可以为null或空
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 * @since 4.0.3
 	 */
-	public static void send(MailAccount mailAccount, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, boolean isHtml, File... files) {
-		send(mailAccount, false, tos, ccs, bccs, subject, content, null, isHtml, files);
+	public static String send(MailAccount mailAccount, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, boolean isHtml, File... files) {
+		return send(mailAccount, false, tos, ccs, bccs, subject, content, null, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送HTML邮件,发送给单个或多个收件人<br>
 	 * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * 
-	 * @param to 收件人
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param files 附件列表
+	 *
+	 * @param to       收件人
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
+	 * @param files    附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void sendHtml(String to, String subject, String content, Map<String, InputStream> imageMap, File... files) {
-		send(to, subject, content, imageMap, true, files);
+	public static String sendHtml(String to, String subject, String content, Map<String, InputStream> imageMap, File... files) {
+		return send(to, subject, content, imageMap, true, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
 	 * 多个收件人可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * 
-	 * @param to 收件人
-	 * @param subject 标题
-	 * @param content 正文
+	 *
+	 * @param to       收件人
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml   是否为HTML
+	 * @param files    附件列表
+	 * @return message-id
 	 */
-	public static void send(String to, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(splitAddress(to), subject, content, imageMap, isHtml, files);
+	public static String send(String to, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(splitAddress(to), subject, content, imageMap, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送单个或多个收件人<br>
 	 * 多个收件人、抄送人、密送人可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * 
-	 * @param to 收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * @param cc 抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * @param bcc 密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
-	 * @param subject 标题
-	 * @param content 正文
+	 *
+	 * @param to       收件人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param cc       抄送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param bcc      密送人,可以使用逗号“,”分隔,也可以通过分号“;”分隔
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml   是否为HTML
+	 * @param files    附件列表
+	 * @return message-id
 	 * @since 4.0.3
 	 */
-	public static void send(String to, String cc, String bcc, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(splitAddress(to), splitAddress(cc), splitAddress(bcc), subject, content, imageMap, isHtml, files);
+	public static String send(String to, String cc, String bcc, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(splitAddress(to), splitAddress(cc), splitAddress(bcc), subject, content, imageMap, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送HTML邮件,发送给多人
-	 * 
-	 * @param tos 收件人列表
-	 * @param subject 标题
-	 * @param content 正文
+	 *
+	 * @param tos      收件人列表
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param files 附件列表
+	 * @param files    附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void sendHtml(Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, File... files) {
-		send(tos, subject, content, imageMap, true, files);
+	public static String sendHtml(Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, File... files) {
+		return send(tos, subject, content, imageMap, true, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送给多人
-	 * 
-	 * @param tos 收件人列表
-	 * @param subject 标题
-	 * @param content 正文
+	 *
+	 * @param tos      收件人列表
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml   是否为HTML
+	 * @param files    附件列表
+	 * @return message-id
 	 */
-	public static void send(Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(tos, null, null, subject, content, imageMap, isHtml, files);
+	public static String send(Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(tos, null, null, subject, content, imageMap, isHtml, files);
 	}
 
 	/**
 	 * 使用配置文件中设置的账户发送邮件,发送给多人
-	 * 
-	 * @param tos 收件人列表
-	 * @param ccs 抄送人列表,可以为null或空
-	 * @param bccs 密送人列表,可以为null或空
-	 * @param subject 标题
-	 * @param content 正文
+	 *
+	 * @param tos      收件人列表
+	 * @param ccs      抄送人列表,可以为null或空
+	 * @param bccs     密送人列表,可以为null或空
+	 * @param subject  标题
+	 * @param content  正文
 	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML
-	 * @param files 附件列表
+	 * @param isHtml   是否为HTML
+	 * @param files    附件列表
+	 * @return message-id
 	 * @since 4.0.3
 	 */
-	public static void send(Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(GlobalMailAccount.INSTANCE.getAccount(), true, tos, ccs, bccs, subject, content, imageMap, isHtml, files);
+	public static String send(Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(GlobalMailAccount.INSTANCE.getAccount(), true, tos, ccs, bccs, subject, content, imageMap, isHtml, files);
 	}
 
 	// ------------------------------------------------------------------------------------------------------------------------------- Custom MailAccount
+
 	/**
 	 * 发送邮件给多人
-	 * 
+	 *
 	 * @param mailAccount 邮件认证对象
-	 * @param to 收件人,多个收件人逗号或者分号隔开
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param to          收件人,多个收件人逗号或者分号隔开
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param imageMap    图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 * @since 3.2.0
 	 */
-	public static void send(MailAccount mailAccount, String to, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(mailAccount, splitAddress(to), subject, content, imageMap, isHtml, files);
+	public static String send(MailAccount mailAccount, String to, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(mailAccount, splitAddress(to), subject, content, imageMap, isHtml, files);
 	}
 
 	/**
 	 * 发送邮件给多人
-	 * 
+	 *
 	 * @param mailAccount 邮件帐户信息
-	 * @param tos 收件人列表
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param tos         收件人列表
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param imageMap    图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 * @since 4.6.3
 	 */
-	public static void send(MailAccount mailAccount, Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
-		send(mailAccount, tos, null, null, subject, content, imageMap, isHtml, files);
+	public static String send(MailAccount mailAccount, Collection<String> tos, String subject, String content, Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+		return send(mailAccount, tos, null, null, subject, content, imageMap, isHtml, files);
 	}
 
 	/**
 	 * 发送邮件给多人
-	 * 
+	 *
 	 * @param mailAccount 邮件帐户信息
-	 * @param tos 收件人列表
-	 * @param ccs 抄送人列表,可以为null或空
-	 * @param bccs 密送人列表,可以为null或空
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param imageMap 图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param tos         收件人列表
+	 * @param ccs         抄送人列表,可以为null或空
+	 * @param bccs        密送人列表,可以为null或空
+	 * @param subject     标题
+	 * @param content     正文
+	 * @param imageMap    图片与占位符,占位符格式为cid:$IMAGE_PLACEHOLDER
+	 * @param isHtml      是否为HTML格式
+	 * @param files       附件列表
+	 * @return message-id
 	 * @since 4.6.3
 	 */
-	public static void send(MailAccount mailAccount, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, Map<String, InputStream> imageMap,
-			boolean isHtml, File... files) {
-		send(mailAccount, false, tos, ccs, bccs, subject, content, imageMap, isHtml, files);
+	public static String send(MailAccount mailAccount, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content, Map<String, InputStream> imageMap,
+	                          boolean isHtml, File... files) {
+		return send(mailAccount, false, tos, ccs, bccs, subject, content, imageMap, isHtml, files);
 	}
 
 	// ------------------------------------------------------------------------------------------------------------------------ Private method start
+
 	/**
 	 * 发送邮件给多人
-	 * 
-	 * @param mailAccount 邮件帐户信息
+	 *
+	 * @param mailAccount      邮件帐户信息
 	 * @param useGlobalSession 是否全局共享Session
-	 * @param tos 收件人列表
-	 * @param ccs 抄送人列表,可以为null或空
-	 * @param bccs 密送人列表,可以为null或空
-	 * @param subject 标题
-	 * @param content 正文
-	 * @param imageMap 图片与占位符,占位符格式为cid:${cid}
-	 * @param isHtml 是否为HTML格式
-	 * @param files 附件列表
+	 * @param tos              收件人列表
+	 * @param ccs              抄送人列表,可以为null或空
+	 * @param bccs             密送人列表,可以为null或空
+	 * @param subject          标题
+	 * @param content          正文
+	 * @param imageMap         图片与占位符,占位符格式为cid:${cid}
+	 * @param isHtml           是否为HTML格式
+	 * @param files            附件列表
+	 * @return message-id
 	 * @since 4.6.3
 	 */
-	private static void send(MailAccount mailAccount, boolean useGlobalSession, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content,
-			Map<String, InputStream> imageMap, boolean isHtml, File... files) {
+	private static String send(MailAccount mailAccount, boolean useGlobalSession, Collection<String> tos, Collection<String> ccs, Collection<String> bccs, String subject, String content,
+	                           Map<String, InputStream> imageMap, boolean isHtml, File... files) {
 		final Mail mail = Mail.create(mailAccount).setUseGlobalSession(useGlobalSession);
 
 		// 可选抄送人
@@ -358,9 +382,9 @@ public class MailUtil {
 		mail.setContent(content);
 		mail.setHtml(isHtml);
 		mail.setFiles(files);
-		
+
 		// 图片
-		if(MapUtil.isNotEmpty(imageMap)) {
+		if (MapUtil.isNotEmpty(imageMap)) {
 			for (Entry<String, InputStream> entry : imageMap.entrySet()) {
 				mail.addImage(entry.getKey(), entry.getValue());
 				// 关闭流
@@ -368,12 +392,12 @@ public class MailUtil {
 			}
 		}
 
-		mail.send();
+		return mail.send();
 	}
 
 	/**
 	 * 将多个联系人转为列表,分隔符为逗号或者分号
-	 * 
+	 *
 	 * @param addresses 多个联系人,如果为空返回null
 	 * @return 联系人列表
 	 */

+ 1 - 1
hutool-extra/src/test/java/cn/hutool/extra/mail/MailTest.java

@@ -40,7 +40,7 @@ public class MailTest {
 	}
 	
 	@Test
-	@Ignore
+//	@Ignore
 	public void sendHtmlTest() {
 		MailUtil.send("hutool@foxmail.com", "测试", "<h1>邮件来自Hutool测试</h1>", true);
 	}