"
+ + "
测试邮件
"
+ + "
这是一封测试邮件,如果您收到了说明邮箱配置正确。
"
+ + "
发送时间:" + java.time.LocalDateTime.now() + "
"
+ + "
", true);
+ mailSender.send(message);
+ log.info("测试邮件发送成功: to={}", config.getEmail());
+ } catch (Exception e) {
+ log.error("测试邮件发送失败: to={}, error={}", config.getEmail(), e.getMessage());
+ throw new RuntimeException("邮件发送失败,请检查邮箱配置:" + e.getMessage());
+ }
+ }
+
+ private JavaMailSender buildMailSender(BaseSysEmailConfigEntity config) {
+ JavaMailSenderImpl sender = new JavaMailSenderImpl();
+ sender.setHost(config.getHost());
+ sender.setPort(config.getPort());
+ sender.setUsername(config.getUsername());
+ sender.setPassword(config.getPassword());
+ sender.setDefaultEncoding("UTF-8");
+
+ java.util.Properties props = sender.getJavaMailProperties();
+ props.put("mail.transport.protocol", "smtp");
+ props.put("mail.smtp.auth", "true");
+ if (config.getSslEnable() != null && config.getSslEnable() == 1) {
+ props.put("mail.smtp.ssl.enable", "true");
+ props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+ } else {
+ props.put("mail.smtp.starttls.enable", "true");
+ }
+ props.put("mail.smtp.timeout", "5000");
+ props.put("mail.smtp.connectiontimeout", "5000");
+
+ return sender;
+ }
+}
diff --git a/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysEmailConfigServiceImpl.java b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysEmailConfigServiceImpl.java
new file mode 100644
index 0000000..1155399
--- /dev/null
+++ b/src/main/java/com/cool/modules/base/service/sys/impl/BaseSysEmailConfigServiceImpl.java
@@ -0,0 +1,32 @@
+package com.cool.modules.base.service.sys.impl;
+
+import cn.hutool.core.util.ObjUtil;
+import com.cool.core.base.BaseServiceImpl;
+import com.cool.core.exception.CoolPreconditions;
+import com.cool.modules.base.entity.sys.BaseSysEmailConfigEntity;
+import com.cool.modules.base.mapper.sys.BaseSysEmailConfigMapper;
+import com.cool.modules.base.service.sys.BaseSysEmailConfigService;
+import com.mybatisflex.core.query.QueryWrapper;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BaseSysEmailConfigServiceImpl extends BaseServiceImpl