This is an automated email from the ASF dual-hosted git repository.

rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 049d7cc364f91bbab0b6bee708806724430a8231
Author: Matthieu Baechler <[email protected]>
AuthorDate: Wed Apr 21 22:49:46 2021 +0200

    JAMES-3569 preserves all email propertis on recipient rewrite
    
    Co-Authored-By: Jean Helou <[email protected]>
---
 .../transport/mailets/RecipientRewriteTableProcessor.java      | 10 +++-------
 .../transport/mailets/RecipientRewriteTableProcessorTest.java  |  7 +++++++
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
index 77660c2..db99d59 100644
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
+++ 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessor.java
@@ -277,13 +277,9 @@ public class RecipientRewriteTableProcessor {
     private void forwardToRemoteAddress(Mail mail, MailAddress recipient, 
Collection<MailAddress> remoteRecipients) {
         if (!remoteRecipients.isEmpty()) {
             try {
-                mailetContext.sendMail(
-                    MailImpl.builder()
-                        .name(mail.getName())
-                        .sender(mail.getMaybeSender())
-                        .addRecipients(ImmutableList.copyOf(remoteRecipients))
-                        .mimeMessage(mail.getMessage())
-                        .build());
+                Mail duplicate = mail.duplicate();
+                
duplicate.setRecipients(ImmutableList.copyOf(remoteRecipients));
+                mailetContext.sendMail(duplicate);
                 LOGGER.info("Mail for {} forwarded to {}", recipient, 
remoteRecipients);
             } catch (MessagingException ex) {
                 LOGGER.warn("Error forwarding mail to {}", remoteRecipients);
diff --git 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
index c41dd1e..9fee75e 100644
--- 
a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
+++ 
b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/RecipientRewriteTableProcessorTest.java
@@ -48,6 +48,9 @@ import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 import org.apache.james.rrt.memory.MemoryRecipientRewriteTable;
 import org.apache.james.util.MimeMessageUtil;
+import org.apache.mailet.Attribute;
+import org.apache.mailet.AttributeName;
+import org.apache.mailet.AttributeValue;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.MailAddressFixture;
 import org.apache.mailet.base.test.FakeMail;
@@ -169,12 +172,16 @@ class RecipientRewriteTableProcessorTest {
                 .add(MailAddressFixture.OTHER_AT_JAMES.toString())
                 .build();
 
+        Attribute attribute = 
AttributeName.of("dont-loose-my-attribute").withValue(AttributeValue.of("ok 
?"));
+        mail.setAttribute(attribute);
+
         processor.handleMappings(mappings, mail, 
MailAddressFixture.OTHER_AT_JAMES);
 
         FakeMailContext.SentMail expected = FakeMailContext.sentMailBuilder()
                 .sender(MailAddressFixture.ANY_AT_JAMES)
                 .recipients(ImmutableList.of(MailAddressFixture.ANY_AT_JAMES, 
MailAddressFixture.OTHER_AT_JAMES))
                 .fromMailet()
+                .attribute(attribute)
                 .message(message)
                 .build();
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to