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]
