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