Mailer: Handles Reply-To correctly

Fixes #5231
This commit is contained in:
George Gastaldi
2019-11-05 18:42:30 -03:00
parent 1c6d3aa104
commit d616d51e91
2 changed files with 16 additions and 2 deletions

View File

@@ -73,7 +73,7 @@ public class ReactiveMailerImpl implements ReactiveMailer {
private CompletionStage<Void> 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<CompletionStage<?>> stages = new ArrayList<>();
List<MailAttachment> attachments = new CopyOnWriteArrayList<>();

View File

@@ -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());