add method

This commit is contained in:
Looly
2021-10-23 23:19:50 +08:00
parent 41e488a36b
commit d571567c52
8 changed files with 83 additions and 5 deletions

View File

@@ -36,6 +36,7 @@ import java.util.Date;
* @since 3.2.0
*/
public class Mail implements Builder<MimeMessage> {
private static final long serialVersionUID = 1L;
/**
* 邮箱帐户信息以及一些客户端配置信息
@@ -262,7 +263,10 @@ public class Mail implements Builder<MimeMessage> {
for (DataSource attachment : attachments) {
bodyPart = new MimeBodyPart();
bodyPart.setDataHandler(new DataHandler(attachment));
nameEncoded = InternalMailUtil.encodeText(attachment.getName(), charset);
nameEncoded = attachment.getName();
if(this.mailAccount.isEncodefilename()){
nameEncoded = InternalMailUtil.encodeText(nameEncoded, charset);
}
// 普通附件文件名
bodyPart.setFileName(nameEncoded);
if (StrUtil.startWith(attachment.getContentType(), "image/")) {

View File

@@ -34,8 +34,10 @@ 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";
// 其他
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"};
@@ -75,7 +77,11 @@ public class MailAccount implements Serializable {
/**
* 对于超长参数是否切分为多份默认为false国内邮箱附件不支持切分的附件名
*/
private boolean splitlongparameters;
private boolean splitlongparameters = false;
/**
* 对于文件名是否使用{@link #charset}编码,默认为 {@code true}
*/
private boolean encodefilename = true;
/**
* 使用 STARTTLS安全连接STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接TLS或SSL 而不是使用一个单独的加密通信端口。
@@ -332,6 +338,26 @@ public class MailAccount implements Serializable {
this.splitlongparameters = splitlongparameters;
}
/**
* 对于文件名是否使用{@link #charset}编码,默认为 {@code true}
*
* @return 对于文件名是否使用{@link #charset}编码,默认为 {@code true}
* @since 5.7.16
*/
public boolean isEncodefilename() {
return encodefilename;
}
/**
* 设置对于文件名是否使用{@link #charset}编码
*
* @param encodefilename 对于文件名是否使用{@link #charset}编码
* @since 5.7.16
*/
public void setEncodefilename(boolean encodefilename) {
this.encodefilename = encodefilename;
}
/**
* 是否使用 STARTTLS安全连接STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接TLS或SSL 而不是使用一个单独的加密通信端口。
*

View File

@@ -20,3 +20,7 @@ starttlsEnable = true
sslEnable = true
# 调试模式
debug = true
# 对于超长参数是否切分为多份默认为false国内邮箱附件不支持切分的附件名
splitlongparameters = false
# 是否编码附件文件名默认true
encodefilename = true