[update]:

1. (framework) MailConfig - 初始化 JavaMailSender 改为直接初始化 MailAccount ;
2. (common) MailUtils - JavaMailSenderImpl 替换为 MailAccount ;
This commit is contained in:
zlyx 2022-05-02 20:44:48 +08:00
parent fbf8e6284a
commit f199d202a5
2 changed files with 19 additions and 40 deletions

View File

@ -29,20 +29,13 @@ import java.util.Properties;
@NoArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PRIVATE)
public class MailUtils extends MailUtil { public class MailUtils extends MailUtil {
private static final JavaMailSenderImpl SENDER = SpringUtils.getBean(JavaMailSenderImpl.class); private static final MailAccount ACCOUNT = SpringUtils.getBean(MailAccount.class);
/**
* 获取邮件发送实例
*/
public static JavaMailSender getSender() {
return SENDER;
}
/** /**
* 获取邮件发送实例 * 获取邮件发送实例
*/ */
public static MailAccount getMailAccount() { public static MailAccount getMailAccount() {
return getMailAccount(null, null); return ACCOUNT;
} }
/** /**
@ -52,19 +45,10 @@ public class MailUtils extends MailUtil {
* @param password 授权码 * @param password 授权码
*/ */
public static MailAccount getMailAccount(String username, String password) { public static MailAccount getMailAccount(String username, String password) {
Properties properties = SENDER.getJavaMailProperties(); ACCOUNT.setFrom(StringUtils.blankToDefault(username, ACCOUNT.getUser()));
ACCOUNT.setUser(StringUtils.blankToDefault(username, ACCOUNT.getUser()));
MailAccount account = new MailAccount(); ACCOUNT.setPass(StringUtils.blankToDefault(password, ACCOUNT.getPass()));
account.setHost(SENDER.getHost()); return ACCOUNT;
account.setPort(SENDER.getPort());
account.setFrom(StringUtils.blankToDefault(username, SENDER.getUsername()));
account.setUser(StringUtils.blankToDefault(username, SENDER.getUsername()));
account.setPass(StringUtils.blankToDefault(password, SENDER.getPassword()));
account.setAuth((Boolean) properties.get("mail.smtp.auth"));
account.setDebug((Boolean) properties.get("mail.debug"));
account.setStarttlsEnable((Boolean) properties.get("mail.smtp.starttls.enable"));
return account;
} }
/** /**

View File

@ -1,13 +1,12 @@
package com.ruoyi.framework.config; package com.ruoyi.framework.config;
import cn.hutool.extra.mail.MailAccount;
import com.ruoyi.framework.config.properties.MailProperties; import com.ruoyi.framework.config.properties.MailProperties;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Properties;
/** /**
* JavaMail 配置 * JavaMail 配置
@ -21,25 +20,21 @@ public class MailConfig {
private MailProperties mailProperties; private MailProperties mailProperties;
/** /**
* 初始化 JavaMailSender * 初始化 MailAccount
*/ */
@Bean @Bean
@ConditionalOnProperty(value = "spring.mail.enabled", havingValue = "true") @ConditionalOnProperty(value = "spring.mail.enabled", havingValue = "true")
public JavaMailSenderImpl getMailSender() { public MailAccount mailAccount() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); MailAccount account = new MailAccount();
mailSender.setHost(mailProperties.getHost()); account.setUser(mailProperties.getUsername());
mailSender.setPort(mailProperties.getPort()); account.setFrom(mailProperties.getUsername());
mailSender.setUsername(mailProperties.getUsername()); account.setPass(mailProperties.getPassword());
mailSender.setPassword(mailProperties.getPassword()); account.setHost(mailProperties.getHost());
account.setPort(mailProperties.getPort());
Properties props = mailSender.getJavaMailProperties(); account.setAuth(mailProperties.getAuth());
props.put("mail.transport.protocol", mailProperties.getProtocol()); account.setDebug(mailProperties.getDebug());
props.put("mail.smtp.auth", mailProperties.getAuth()); account.setStarttlsEnable(mailProperties.getStarttlsEnable());
props.put("mail.smtp.starttls.enable", mailProperties.getStarttlsEnable()); return account;
props.put("mail.smtp.ssl.trust", mailProperties.getSslTrust());
props.put("mail.debug", mailProperties.getDebug());
return mailSender;
} }
} }