You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/12/05 07:30:49 UTC
[09/19] james-project git commit: JAMES-2242 JamesMailetContext
should not fail to bounce when no postmaster address
JAMES-2242 JamesMailetContext should not fail to bounce when no postmaster address
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/9cc4c6cb
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/9cc4c6cb
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/9cc4c6cb
Branch: refs/heads/master
Commit: 9cc4c6cbce1b272553afded7413ecfb8466fbdbb
Parents: b483910
Author: benwa <bt...@linagora.com>
Authored: Wed Nov 29 14:58:56 2017 +0700
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Dec 4 14:42:17 2017 +0100
----------------------------------------------------------------------
.../impl/JamesMailetContext.java | 13 +++++++++---
.../impl/JamesMailetContextTest.java | 21 +++++++++++++++++++-
2 files changed, 30 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/9cc4c6cb/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
index 197035e..f460d55 100644
--- a/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
+++ b/server/mailet/mailetcontainer-camel/src/main/java/org/apache/james/mailetcontainer/impl/JamesMailetContext.java
@@ -27,6 +27,7 @@ import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
+import java.util.Optional;
import java.util.Vector;
import javax.inject.Inject;
@@ -40,7 +41,7 @@ import javax.mail.internet.ParseException;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
-import org.apache.james.server.core.MailImpl;
+import org.apache.james.core.MailAddress;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.dnsservice.api.TemporaryResolutionException;
import org.apache.james.dnsservice.library.MXHostAddressIterator;
@@ -50,17 +51,19 @@ import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.lifecycle.api.LifecycleUtil;
import org.apache.james.queue.api.MailQueue;
import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.server.core.MailImpl;
import org.apache.james.user.api.UsersRepository;
import org.apache.james.user.api.UsersRepositoryException;
import org.apache.mailet.HostAddress;
import org.apache.mailet.LookupException;
import org.apache.mailet.Mail;
-import org.apache.james.core.MailAddress;
import org.apache.mailet.MailetContext;
import org.apache.mailet.base.RFC2822Headers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.github.fge.lambdas.Throwing;
+import com.github.fge.lambdas.consumers.ConsumerChainer;
import com.google.common.collect.ImmutableSet;
@SuppressWarnings("deprecation")
@@ -193,8 +196,12 @@ public class JamesMailetContext implements MailetContext, Configurable {
}
MailImpl reply = rawBounce(mail, message);
+
// Change the sender...
- reply.getMessage().setFrom(bouncer.toInternetAddress());
+ if (bouncer != null) {
+ reply.getMessage().setFrom(bouncer.toInternetAddress());
+ }
+
reply.getMessage().saveChanges();
// Send it off ... with null reverse-path
reply.setSender(null);
http://git-wip-us.apache.org/repos/asf/james-project/blob/9cc4c6cb/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
index f5e5f76..ccb8abd 100644
--- a/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
+++ b/server/mailet/mailetcontainer-camel/src/test/java/org/apache/james/mailetcontainer/impl/JamesMailetContextTest.java
@@ -21,19 +21,26 @@ package org.apache.james.mailetcontainer.impl;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.james.core.MailAddress;
import org.apache.james.dnsservice.api.DNSService;
import org.apache.james.domainlist.lib.AbstractDomainList;
import org.apache.james.domainlist.memory.MemoryDomainList;
+import org.apache.james.queue.api.MailQueue;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.server.core.MailImpl;
import org.apache.james.user.memory.MemoryUsersRepository;
-import org.apache.james.core.MailAddress;
+import org.apache.mailet.base.test.MimeMessageBuilder;
import org.junit.Before;
import org.junit.Test;
+import com.google.common.collect.ImmutableList;
+
public class JamesMailetContextTest {
public static final String DOMAIN_COM = "domain.com";
public static final String USERNAME = "user";
@@ -57,6 +64,9 @@ public class JamesMailetContextTest {
usersRepository = MemoryUsersRepository.withVirtualHosting();
usersRepository.setDomainList(domainList);
testee = new JamesMailetContext();
+ MailQueueFactory mailQueueFactory = mock(MailQueueFactory.class);
+ when(mailQueueFactory.getQueue(anyString())).thenReturn(mock(MailQueue.class));
+ testee.retrieveRootMailQueue(mailQueueFactory);
testee.setDomainList(domainList);
testee.setUsersRepository(usersRepository);
mailAddress = new MailAddress(USERMAIL);
@@ -141,4 +151,13 @@ public class JamesMailetContextTest {
public void isLocalEmailShouldBeFalseWhenMailIsNull() throws Exception {
assertThat(testee.isLocalEmail(null)).isFalse();
}
+
+ @Test
+ public void bounceShouldNotFailWhenNonConfiguredPostmaster() throws Exception {
+ MailImpl mail = new MailImpl();
+ mail.setSender(mailAddress);
+ mail.setRecipients(ImmutableList.of(mailAddress));
+ mail.setMessage(MimeMessageBuilder.defaultMimeMessage());
+ testee.bounce(mail, "message");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org