From ca65b5e8fc0503f05e25fd238c7cfc4b1ba8a120 Mon Sep 17 00:00:00 2001 From: hanxuanyu <2252193204@qq.com> Date: Mon, 24 Jan 2022 20:57:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dnotify=E4=B8=ADmail=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hxuanyu/notify/config/MailProperties.java | 16 ++++++++++++++++ .../notify/service/impl/MailServiceImpl.java | 13 ++++++------- ...additional-spring-configuration-metadata.json | 5 +++++ test/src/main/resources/application.yml | 7 ++++--- 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/config/MailProperties.java b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/config/MailProperties.java index 0daa6a4..596bcf5 100644 --- a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/config/MailProperties.java +++ b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/config/MailProperties.java @@ -4,12 +4,15 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.ConfigurationProperties; /** * @author hxuanyu */ @ConfigurationProperties(prefix = "notify.mail") +@ConditionalOnProperty(prefix = "notify.mail", havingValue = "true") public class MailProperties { private static final Charset DEFAULT_CHARSET; private String host; @@ -20,12 +23,25 @@ public class MailProperties { private Charset defaultEncoding; private Map properties; private String jndiName; + private Integer interval = 10000; public MailProperties() { this.defaultEncoding = DEFAULT_CHARSET; this.properties = new HashMap(); } + public void setProperties(Map properties) { + this.properties = properties; + } + + public Integer getInterval() { + return interval; + } + + public void setInterval(Integer interval) { + this.interval = interval; + } + public String getHost() { return this.host; } diff --git a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/MailServiceImpl.java b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/MailServiceImpl.java index bbe4e5f..68e77f1 100644 --- a/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/MailServiceImpl.java +++ b/notify-spring-boot-starter/src/main/java/com/hxuanyu/notify/service/impl/MailServiceImpl.java @@ -33,7 +33,7 @@ public class MailServiceImpl implements MailService { private static final Logger logger = LoggerFactory.getLogger(MailServiceImpl.class); private static boolean isRunning = true; ExecutorService executor; - + @Resource private JavaMailSender javaMailSender; @@ -55,7 +55,7 @@ public class MailServiceImpl implements MailService { if (mail != null) { //可以设置延时 以及重复校验等等操作 sendMailSync(mail); - Thread.sleep(10000); + Thread.sleep(mailProperties.getInterval()); } } catch (Exception e) { e.printStackTrace(); @@ -72,6 +72,10 @@ public class MailServiceImpl implements MailService { private void sendMailSync(Mail mail) { + if (mailProperties == null){ + logger.error("未配置邮件信息,请在配置文件中添加配置信息后再发送邮件"); + return; + } String from = mail.getFrom(); if (from == null) { from = mailProperties.getUsername(); @@ -107,11 +111,6 @@ public class MailServiceImpl implements MailService { } - @Autowired - public void setJavaMailSender(JavaMailSender javaMailSender) { - this.javaMailSender = javaMailSender; - } - @Autowired public void setExecutor(@Qualifier("mailExecutorService") ExecutorService executor) { this.executor = executor; diff --git a/notify-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/notify-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json index bee3a2c..a2c6b6c 100644 --- a/notify-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/notify-spring-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -35,6 +35,11 @@ "type": "java.lang.String", "description": "Description for notify.mail.properties.mail.debug." }, + { + "name": "notify.mail.properties.mail.interval", + "type": "java.lang.String", + "description": "Description for notify.mail.properties.mail.debug." + }, { "name": "notify.mail.properties.stmp.socketFactory.class", "type": "java.lang.String", diff --git a/test/src/main/resources/application.yml b/test/src/main/resources/application.yml index ee42b23..609af7a 100644 --- a/test/src/main/resources/application.yml +++ b/test/src/main/resources/application.yml @@ -3,12 +3,13 @@ notify: host: smtp.qq.com protocol: smtp default-encoding: UTF-8 - password: bjmtskwfjrvqdhgb - username: 2202043370@qq.com + password: your pwd + username: your account port: 587 properties: mail: debug: false stmp: socketFactory: - class: javax.net.ssl.SSLSocketFactory \ No newline at end of file + class: javax.net.ssl.SSLSocketFactory + interval: 5000 \ No newline at end of file