private static void setCustomSocketFactory(final String certificate, final Properties properties) throws IOException { if (!Value.isEmpty(certificate)) { try { final TLSContext tlsContext = new TLSContextFactory().create(certificate, "TLS"); // i18n JRE TLSSocketFactory.initialize(tlsContext.getContext()); properties.setProperty( "mail.smtp.ssl.socketFactory.class", TLSSocketFactory.class.getName()); properties.setProperty("mail.smtp.ssl.socketFactory.fallback", Boolean.FALSE.toString()); } catch (GeneralSecurityException e) { throw new IOException(e); } } }