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 ecd387055e0017b5108b73bdbaeba709881137dc..daf218b31ea4347823d5b2c6d9fd3adb844f7554 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; + }