{
private Session getSession() {
final Session session = MailUtil.getSession(this.mailAccount, this.useGlobalSession);
- if(null != this.debugOutput){
+ if (null != this.debugOutput) {
session.setDebugOut(debugOutput);
}
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java
index 8ea8aed62..6cff1777d 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/MailAccount.java
@@ -34,10 +34,13 @@ public class MailAccount implements Serializable {
private static final String SOCKET_FACTORY_FALLBACK = "mail.smtp.socketFactory.fallback";
private static final String SOCKET_FACTORY_PORT = "smtp.socketFactory.port";
+ // System Properties
+ private static final String SPLIT_LONG_PARAMS = "mail.mime.splitlongparameters";
+ //private static final String ENCODE_FILE_NAME = "mail.mime.encodefilename";
+ //private static final String CHARSET = "mail.mime.charset";
+
// 其他
private static final String MAIL_DEBUG = "mail.debug";
- private static final String SPLIT_LONG_PARAMS = "mail.mime.splitlongparameters";
- // private static final String ENCODE_FILE_NAME = "mail.mime.encodefilename";
public static final String[] MAIL_SETTING_PATHS = new String[]{"config/mail.setting", "config/mailAccount.setting", "mail.setting"};
@@ -303,16 +306,19 @@ public class MailAccount implements Serializable {
/**
* 获取字符集编码
*
- * @return 编码
+ * @return 编码,可能为{@code null}
*/
public Charset getCharset() {
return charset;
}
/**
- * 设置字符集编码
+ * 设置字符集编码,此选项不会修改全局配置,若修改全局配置,请设置此项为{@code null}并设置:
+ *
+ * System.setProperty("mail.mime.charset", charset);
+ *
*
- * @param charset 字符集编码
+ * @param charset 字符集编码,{@code null} 则表示使用全局设置的默认编码,全局编码为mail.mime.charset系统属性
* @return this
*/
public MailAccount setCharset(Charset charset) {
@@ -330,7 +336,11 @@ public class MailAccount implements Serializable {
}
/**
- * 设置对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名)
+ * 设置对于超长参数是否切分为多份,默认为false(国内邮箱附件不支持切分的附件名)
+ * 注意此项为全局设置,此项会调用
+ *
+ * System.setProperty("mail.mime.splitlongparameters", true)
+ *
*
* @param splitlongparameters 对于超长参数是否切分为多份
*/
@@ -345,11 +355,17 @@ public class MailAccount implements Serializable {
* @since 5.7.16
*/
public boolean isEncodefilename() {
+
return encodefilename;
}
/**
- * 设置对于文件名是否使用{@link #charset}编码
+ * 设置对于文件名是否使用{@link #charset}编码,此选项不会修改全局配置
+ * 如果此选项设置为{@code false},则是否编码取决于两个系统属性:
+ *
+ * - mail.mime.encodefilename 是否编码附件文件名
+ * - mail.mime.charset 编码文件名的编码
+ *
*
* @param encodefilename 对于文件名是否使用{@link #charset}编码
* @since 5.7.16
@@ -400,6 +416,7 @@ public class MailAccount implements Serializable {
/**
* 获取SSL协议,多个协议用空格分隔
+ *
* @return SSL协议,多个协议用空格分隔
* @since 5.5.7
*/