@BeforeClass public static void setup() { // Configure the boot property to send email to the test email server. System.setProperty("spring.mail.port", Integer.toString(smtpServer.getPort())); }
@Test public void testSmtp() throws Exception { JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); mailSender.setHost("localhost"); mailSender.setPort(smtpServer.getPort()); mailSender.setUsername("user"); mailSender.setPassword("pw"); MailSendingMessageHandler handler = new MailSendingMessageHandler(mailSender); handler.handleMessage(MessageBuilder.withPayload("foo") .setHeader(MailHeaders.TO, new String[] {"bar@baz"}) .setHeader(MailHeaders.FROM, "foo@bar") .setHeader(MailHeaders.SUBJECT, "foo") .build()); int n = 0; while (n++ < 100 && smtpServer.getMessages().size() == 0) { Thread.sleep(100); } assertTrue(smtpServer.getMessages().size() > 0); String message = smtpServer.getMessages().get(0); assertThat(message, endsWith("foo\n")); assertThat(message, containsString("foo@bar")); assertThat(message, containsString("bar@baz")); assertThat(message, containsString("user:user")); assertThat(message, containsString("password:pw")); }
@Bean public IntegrationFlow sendMailFlow() { return IntegrationFlows.from("sendMailChannel") .enrichHeaders(Mail.headers() .subjectFunction(m -> "foo") .from("foo@bar") .toFunction(m -> new String[] { "bar@baz" })) .handle(Mail.outboundAdapter("localhost") .port(smtpServer.getPort()) .credentials("user", "pw") .protocol("smtp") .javaMailProperties(p -> p.put("mail.debug", "false")), e -> e.id("sendMailEndpoint")) .get(); }
@Bean public IntegrationFlow sendMailFlow() { return IntegrationFlows.from("sendMailChannel") .enrichHeaders(Mail.headers() .subjectFunction(m -> "foo") .from("foo@bar") .toFunction(m -> new String[] { "bar@baz" })) .handle(Mail.outboundAdapter("localhost") .port(smtpServer.getPort()) .credentials("user", "pw") .protocol("smtp") .javaMailProperties(p -> p.put("mail.debug", "false")), e -> e.id("sendMailEndpoint")) .get(); }