@Before public void setup() { Session session = Session.getDefaultInstance(new Properties()); session.addProvider(new Provider(Type.TRANSPORT, "success", SuccessTransport.class.getName(), "Test", "1.0.0")); this.mailSender = mock(JavaMailSenderImpl.class); given(this.mailSender.getHost()).willReturn("smtp.acme.org"); given(this.mailSender.getPort()).willReturn(25); given(this.mailSender.getSession()).willReturn(session); this.indicator = new MailHealthIndicator(this.mailSender); }
private Session buildSession(EmailConfiguration emailConfig) { Properties properties = new Properties(); properties.setProperty("mail.smtp.host", emailConfig.getHost()); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.port", String.valueOf(emailConfig.getPort())); //ssl properties.setProperty("mail.smtp.socketFactory.port", String.valueOf(emailConfig.getPort())); properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.socketFactory.fallback", "false"); properties.setProperty("mail.smtp.starttls.enable", String.valueOf(true)); properties.setProperty("mail.smtp.ssl.checkserveridentity", "true"); properties.setProperty("mail.transport.protocol", "flexiblelogin"); Session session = Session.getDefaultInstance(properties); //explicit override stmp provider because of issues with relocation try { session.setProvider(new Provider(Type.TRANSPORT, "smtps", "flexiblelogin.sun.mail.smtp.SMTPSSLTransport", "Oracle", "1.6.0")); session.setProvider(new Provider(Type.TRANSPORT, "flexiblelogin", "flexiblelogin.sun.mail.smtp.SMTPSSLTransport", "Oracle", "1.6.0")); } catch (NoSuchProviderException noSuchProvider) { logger.error("Failed to add STMP provider", noSuchProvider); } return session; }