diff --git a/core/src/main/java/org/apache/oozie/action/email/EmailActionExecutor.java b/core/src/main/java/org/apache/oozie/action/email/EmailActionExecutor.java index f28dd34a3..e196c14ea 100644 --- a/core/src/main/java/org/apache/oozie/action/email/EmailActionExecutor.java +++ b/core/src/main/java/org/apache/oozie/action/email/EmailActionExecutor.java @@ -69,6 +69,9 @@ public class EmailActionExecutor extends ActionExecutor { public static final String CONF_PREFIX = "oozie.email."; public static final String EMAIL_SMTP_HOST = CONF_PREFIX + "smtp.host"; + public static final String SMTP_SOCKET_FACTORY_CLASS = CONF_PREFIX + "smtp.socketFactory.class"; + public static final String EMAIL_SMTP_FACTORY_SOCKET_PORT = CONF_PREFIX + "smtp.socketFactory.port"; + public static final String EMAIL_SMTP_SOCKET_FACTORY_FALLBACK = CONF_PREFIX + "smtp.socketFactory.fallback"; public static final String EMAIL_SMTP_PORT = CONF_PREFIX + "smtp.port"; public static final String EMAIL_SMTP_AUTH = CONF_PREFIX + "smtp.auth"; public static final String EMAIL_SMTP_USER = CONF_PREFIX + "smtp.username"; @@ -189,6 +192,9 @@ public void email(String[] to, String[] cc, String[] bcc, String subject, String Boolean smtpStarttlsBool = ConfigurationService.getBoolean(EMAIL_SMTP_STARTTLS); String fromAddr = ConfigurationService.get(EMAIL_SMTP_FROM); Integer timeoutMillisInt = ConfigurationService.getInt(EMAIL_SMTP_SOCKET_TIMEOUT_MS); + Integer smtpSocketPortInt = ConfigurationService.getInt(EMAIL_SMTP_FACTORY_SOCKET_PORT); + String smtpSocketClass = ConfigurationService.get(SMTP_SOCKET_FACTORY_CLASS); + Boolean smtpSocketFallbackBool = ConfigurationService.getBoolean(EMAIL_SMTP_SOCKET_FACTORY_FALLBACK); Properties properties = new Properties(); properties.setProperty("mail.smtp.host", smtpHost); @@ -196,6 +202,10 @@ public void email(String[] to, String[] cc, String[] bcc, String subject, String properties.setProperty("mail.smtp.auth", smtpAuthBool.toString()); properties.setProperty("mail.smtp.starttls.enable", smtpStarttlsBool.toString()); + properties.setProperty("mail.smtp.socketFactory.class", smtpSocketClass); + properties.setProperty("mail.smtp.socketFactory.port", smtpSocketPortInt.toString()); + properties.setProperty("mail.smtp.socketFactory.fallback", smtpSocketFallbackBool.toString()); + // Apply sensible timeouts, as defaults are infinite. See https://s.apache.org/javax-mail-timeouts properties.setProperty("mail.smtp.connectiontimeout", timeoutMillisInt.toString()); properties.setProperty("mail.smtp.timeout", timeoutMillisInt.toString());