From 7893947d3b8363670d00dbf78a0b80330b85b004 Mon Sep 17 00:00:00 2001 From: Marcos de Oliveira Date: Wed, 3 Jul 2019 16:52:39 -0300 Subject: [PATCH 1/2] Fix issue with smtp and STARTTLS/SMTPS SMTPS and STARTTLS doesn't work together. So this will test for the selected config (SMTPS or STARTTLS) and put the correct mail.smtp properties. --- .../pwm/svc/email/EmailServerUtil.java | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java b/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java index 3f9b0420c3..7accdf7e75 100644 --- a/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java +++ b/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java @@ -168,23 +168,22 @@ private static Properties makeJavaMailProps( try { final SmtpServerType smtpServerType = profile.readSettingAsEnum( PwmSetting.EMAIL_SERVER_TYPE, SmtpServerType.class ); - if ( smtpServerType == SmtpServerType.SMTP ) + if ( smtpServerType == SmtpServerType.START_TLS ) { - return properties; + properties.put( "mail.smtp.starttls.enable", true ); + properties.put( "mail.smtp.starttls.required", true ); + } + else if ( smtpServerType == SmtpServerType.SMTPS ) + { + final MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory(); + mailSSLSocketFactory.setTrustManagers( trustManager ); + + properties.put( "mail.smtp.ssl.enable", true ); + properties.put( "mail.smtp.ssl.checkserveridentity", true ); + properties.put( "mail.smtp.socketFactory.fallback", false ); + properties.put( "mail.smtp.ssl.socketFactory", mailSSLSocketFactory ); + properties.put( "mail.smtp.ssl.socketFactory.port", port ); } - - final MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory(); - mailSSLSocketFactory.setTrustManagers( trustManager ); - - properties.put( "mail.smtp.ssl.enable", true ); - properties.put( "mail.smtp.ssl.checkserveridentity", true ); - properties.put( "mail.smtp.socketFactory.fallback", false ); - properties.put( "mail.smtp.ssl.socketFactory", mailSSLSocketFactory ); - properties.put( "mail.smtp.ssl.socketFactory.port", port ); - - final boolean useStartTls = smtpServerType == SmtpServerType.START_TLS; - properties.put( "mail.smtp.starttls.enable", useStartTls ); - properties.put( "mail.smtp.starttls.required", useStartTls ); } catch ( Exception e ) { From 6bd0e027eff79aa2653a93d95f5db746adf04e7a Mon Sep 17 00:00:00 2001 From: Marcos de Oliveira Date: Wed, 21 Oct 2020 10:33:23 -0300 Subject: [PATCH 2/2] Update EmailServerUtil.java Remove wrongly inserted catch block. --- .../main/java/password/pwm/svc/email/EmailServerUtil.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java b/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java index 6e5befc413..77ea13adf0 100644 --- a/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java +++ b/server/src/main/java/password/pwm/svc/email/EmailServerUtil.java @@ -198,11 +198,6 @@ else if ( smtpServerType == SmtpServerType.START_TLS ) final String msg = "unable to create message transport properties: " + e.getMessage(); throw new PwmUnrecoverableException( PwmError.CONFIG_FORMAT_ERROR, msg ); } - catch ( final Exception e ) - { - final String msg = "unable to create message transport properties: " + e.getMessage(); - throw new PwmUnrecoverableException( PwmError.CONFIG_FORMAT_ERROR, msg ); - } //Specify configured advanced settings. final Map advancedSettingValues = StringUtil.convertStringListToNameValuePair( config.readSettingAsStringArray( PwmSetting.EMAIL_ADVANCED_SETTINGS ), "=" );