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

Reply via email to