This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 8b3d1f227c33d501fc573f461389b544582b063f Author: Benoit Tellier <btell...@linagora.com> AuthorDate: Mon Jun 12 16:26:04 2023 +0700 JAMES-3914 Sieve Reject: support several recipients --- .../james/transport/mailets/jsieve/RejectAction.java | 5 ++--- .../mailets/delivery/SieveIntegrationTest.java | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java index 9d0bdb7e59..32e3680404 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/jsieve/RejectAction.java @@ -109,8 +109,7 @@ public class RejectAction implements MailAction { originalRecipient = originalRecipients[0]; } - MailAddress soleRecipient = ActionUtils.getSoleRecipient(aMail); - String finalRecipient = soleRecipient.asString(); + String finalRecipient = context.getRecipient().asString(); String originalMessageId = aMail.getMessage().getMessageID(); Multipart multipart = MDN.builder() @@ -133,7 +132,7 @@ public class RejectAction implements MailAction { // Send the message MimeMessage reply = (MimeMessage) aMail.getMessage().reply(false); - soleRecipient.toInternetAddress() + context.getRecipient().toInternetAddress() .ifPresent(Throwing.<Address>consumer(reply::setFrom).sneakyThrow()); reply.setContent(multipart); reply.saveChanges(); diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java index 724c5dea1c..185941d68f 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveIntegrationTest.java @@ -505,6 +505,25 @@ class SieveIntegrationTest { assertThat(mail.getRecipients()).isEmpty(); } + @Test + void rejectShouldWorkWhenMultipleRecipients() throws Exception { + prepareTestUsingScript("org/apache/james/transport/mailets/delivery/reject.script"); + when(usersRepository.getUsername(new MailAddress("ot...@domain.tld"))).thenReturn(Username.of("ot...@domain.tld")); + when(resourceLocator.get(new MailAddress("ot...@domain.tld"))).thenThrow(new ScriptNotFoundException()); + + FakeMail mail = createMail(); + mail.setRecipients(ImmutableList.of(new MailAddress(RECEIVER_DOMAIN_COM), new MailAddress("ot...@domain.tld"))); + testee.service(mail); + + FakeMailContext.SentMail expectedSentMail = FakeMailContext.sentMailBuilder() + .recipient("sen...@any.com") + .fromMailet() + .build(); + assertThat(fakeMailContext.getSentMails()) + .containsExactly(expectedSentMail); + assertThat(mail.getRecipients()).containsOnly(new MailAddress("ot...@domain.tld")); + } + @Test void redirectShouldWorkWhenSeveralRecipients() throws Exception { prepareTestUsingScript("org/apache/james/transport/mailets/delivery/redirect.script"); --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org