You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/04/27 02:54:01 UTC

[james-project] 02/02: JAMES-3569 preserves all email propertis on recipient rewrite

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 <ma...@apache.org>
AuthorDate: Wed Apr 21 22:49:46 2021 +0200

    JAMES-3569 preserves all email propertis on recipient rewrite
    
    Co-Authored-By: Jean Helou <jh...@codamens.fr>
---
 .../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: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org