From d616d51e91c60357afd3b342f6c4eb7145122e54 Mon Sep 17 00:00:00 2001 From: George Gastaldi Date: Tue, 5 Nov 2019 18:42:30 -0300 Subject: [PATCH] Mailer: Handles Reply-To correctly Fixes #5231 --- .../quarkus/mailer/runtime/ReactiveMailerImpl.java | 6 ++++-- .../io/quarkus/mailer/runtime/MailerImplTest.java | 12 ++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/extensions/mailer/runtime/src/main/java/io/quarkus/mailer/runtime/ReactiveMailerImpl.java b/extensions/mailer/runtime/src/main/java/io/quarkus/mailer/runtime/ReactiveMailerImpl.java index 42e62ca96..50eacf66a 100644 --- a/extensions/mailer/runtime/src/main/java/io/quarkus/mailer/runtime/ReactiveMailerImpl.java +++ b/extensions/mailer/runtime/src/main/java/io/quarkus/mailer/runtime/ReactiveMailerImpl.java @@ -73,7 +73,7 @@ public class ReactiveMailerImpl implements ReactiveMailer { private CompletionStage send(Mail mail, MailMessage message) { if (mock) { - LOGGER.infof("Sending email {} from {} to {}, text body: \n{}\nhtml body: \n{}", + LOGGER.infof("Sending email %s from %s to %s, text body: \n%s\nhtml body: \n%s", message.getSubject(), message.getFrom(), message.getTo(), message.getText(), message.getHtml()); return mockMailbox.send(mail); @@ -98,7 +98,6 @@ public class ReactiveMailerImpl implements ReactiveMailer { } else { message.setFrom(this.from); } - message.setTo(mail.getTo()); message.setCc(mail.getCc()); message.setBcc(mail.getBcc()); @@ -106,6 +105,9 @@ public class ReactiveMailerImpl implements ReactiveMailer { message.setText(mail.getText()); message.setHtml(mail.getHtml()); message.setHeaders(toMultimap(mail.getHeaders())); + if (mail.getReplyTo() != null) { + message.addHeader("Reply-To", mail.getReplyTo()); + } List> stages = new ArrayList<>(); List attachments = new CopyOnWriteArrayList<>(); diff --git a/extensions/mailer/runtime/src/test/java/io/quarkus/mailer/runtime/MailerImplTest.java b/extensions/mailer/runtime/src/test/java/io/quarkus/mailer/runtime/MailerImplTest.java index 414c0d340..73f794af8 100644 --- a/extensions/mailer/runtime/src/test/java/io/quarkus/mailer/runtime/MailerImplTest.java +++ b/extensions/mailer/runtime/src/test/java/io/quarkus/mailer/runtime/MailerImplTest.java @@ -197,6 +197,18 @@ class MailerImplTest { assertThat(value).isEqualTo("Hello 2"); } + @Test + void testReplyToHeaderIsSet() throws MessagingException { + mailer.send(Mail.withText(TO, "Test", "testHeaders") + .setReplyTo("reply-to@quarkus.io")) + .toCompletableFuture().join(); + assertThat(wiser.getMessages()).hasSize(1); + WiserMessage actual = wiser.getMessages().get(0); + MimeMessage msg = actual.getMimeMessage(); + assertThat(msg.getHeader("Reply-To")).containsExactly("reply-to@quarkus.io"); + assertThat(msg.getReplyTo()).containsExactly(InternetAddress.parse("reply-to@quarkus.io")); + } + private String getContent(WiserMessage msg) { try { return getTextFromMimeMultipart((MimeMultipart) msg.getMimeMessage().getContent());