From 3313a56076ee3dd87442161ddeec2fb844d886f9 Mon Sep 17 00:00:00 2001 From: Mike McKay <mfmckay@wustl.edu> Date: Sun, 29 May 2016 17:09:17 -0500 Subject: [PATCH] Got all mail properties to correctly update and persist, not just host, port, user, password, and protocol. --- .../listeners/methods/SmtpHandlerMethod.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java b/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java index ecd38705..daf218b3 100644 --- a/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java +++ b/src/main/java/org/nrg/xnat/event/listeners/methods/SmtpHandlerMethod.java @@ -1,6 +1,7 @@ package org.nrg.xnat.event.listeners.methods; import com.google.common.collect.ImmutableList; +import org.nrg.mail.services.MailService; import org.nrg.xdat.XDAT; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,10 +12,7 @@ import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.stereotype.Component; import javax.inject.Inject; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; @Component public class SmtpHandlerMethod extends AbstractNotificationsPreferenceHandlerMethod { @@ -45,13 +43,27 @@ public class SmtpHandlerMethod extends AbstractNotificationsPreferenceHandlerMet mailSender.setPassword(XDAT.getNotificationsPreferences().getPassword()); mailSender.setProtocol(XDAT.getNotificationsPreferences().getProtocol()); + Properties oldMailProperties = mailSender.getJavaMailProperties(); + boolean smtpEnabled = XDAT.getNotificationsPreferences().getSmtpEnabled(); + boolean smtpAuth = XDAT.getNotificationsPreferences().getSmtpAuth(); + boolean startTls = XDAT.getNotificationsPreferences().getSmtpStartTls(); + String sslTrust = XDAT.getNotificationsPreferences().getSmtpSSLTrust(); + _mailService.setSmtpEnabled(smtpEnabled); + oldMailProperties.setProperty("smtp.enabled",String.valueOf(smtpEnabled)); + oldMailProperties.setProperty("mail.smtp.auth",String.valueOf(smtpAuth)); + oldMailProperties.setProperty("mail.smtp.starttls.enable",String.valueOf(startTls)); + if(sslTrust!=null) { + oldMailProperties.setProperty("mail.smtp.ssl.trust", sslTrust); + } + mailSender.setJavaMailProperties(oldMailProperties); + } catch (Exception e1) { _log.error("", e1); } } private static final Logger _log = LoggerFactory.getLogger(SmtpHandlerMethod.class); - private static final List<String> PREFERENCES = ImmutableList.copyOf(Arrays.asList("smtp.enabled", "host","port", "username","password", "protocol")); + private static final List<String> PREFERENCES = ImmutableList.copyOf(Arrays.asList("smtp.enabled", "host","port", "username","password", "protocol","smtp.enabled", "mail.smtp.auth","mail.smtp.starttls.enable", "mail.smtp.ssl.trust")); @Autowired @Lazy @@ -60,4 +72,7 @@ public class SmtpHandlerMethod extends AbstractNotificationsPreferenceHandlerMet @Inject private JavaMailSenderImpl mailSender; + @Autowired + private MailService _mailService; + } -- GitLab