JAMES-1854 Delivery header is always the same
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/375ef686 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/375ef686 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/375ef686 Branch: refs/heads/master Commit: 375ef686ae3c6dca0a1d21df07a74e5cbf89d96c Parents: e2550e2 Author: Benoit Tellier <[email protected]> Authored: Thu Oct 27 16:43:27 2016 +0200 Committer: Benoit Tellier <[email protected]> Committed: Fri Nov 18 18:46:46 2016 +0700 ---------------------------------------------------------------------- .../mailets/delivery/LocalDelivery.java | 1 - .../transport/mailets/delivery/SieveMailet.java | 56 ++++++++------------ .../mailets/delivery/ToRecipientFolder.java | 1 - .../mailets/delivery/SieveMailetTest.java | 1 - 4 files changed, 23 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/375ef686/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java index 9fcc785..4412794 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/LocalDelivery.java @@ -118,7 +118,6 @@ public class LocalDelivery extends GenericMailet { .userRepository(usersRepository) .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) .consume(getInitParameter("consume", true)) - .deliveryHeader("Delivered-To") .quiet(getInitParameter("quiet", false)) .verbose(getInitParameter("verbose", false)) .folder("INBOX") http://git-wip-us.apache.org/repos/asf/james-project/blob/375ef686/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveMailet.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveMailet.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveMailet.java index 14415d4..47c325d 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveMailet.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/SieveMailet.java @@ -68,6 +68,8 @@ import com.google.common.base.Optional; */ public class SieveMailet extends GenericMailet implements Poster { + public static final String DELIVERED_TO = "Delivered-To"; + public static Builder builder() { return new Builder(); } @@ -77,7 +79,6 @@ public class SieveMailet extends GenericMailet implements Poster { private MailboxManager mailboxManager; private String folder; private ResourceLocator resourceLocator; - private String deliveryHeader; private boolean consume; private Optional<Boolean> verbose = Optional.absent(); private Optional<Boolean> quiet = Optional.absent(); @@ -102,11 +103,6 @@ public class SieveMailet extends GenericMailet implements Poster { return this; } - public Builder deliveryHeader(String deliveryHeader) { - this.deliveryHeader = deliveryHeader; - return this; - } - public Builder verbose(boolean verbose) { this.verbose = Optional.of(verbose); return this; @@ -126,7 +122,7 @@ public class SieveMailet extends GenericMailet implements Poster { if (resourceLocator == null) { throw new MailetException("Not initialised. Please ensure that the mailet container supports either setter or constructor injection"); } - return new SieveMailet(usersRepos, mailboxManager, resourceLocator, folder, deliveryHeader, consume, verbose.or(false), quiet.or(false)); + return new SieveMailet(usersRepos, mailboxManager, resourceLocator, folder, consume, verbose.or(false), quiet.or(false)); } } @@ -135,7 +131,6 @@ public class SieveMailet extends GenericMailet implements Poster { private final MailboxManager mailboxManager; private final String folder; private final ResourceLocator resourceLocator; - private final String deliveryHeader; private final boolean isInfo; private final boolean verbose; private final boolean consume; @@ -143,7 +138,7 @@ public class SieveMailet extends GenericMailet implements Poster { private final ActionDispatcher actionDispatcher; private final Log log; - private SieveMailet(UsersRepository usersRepos, MailboxManager mailboxManager, ResourceLocator resourceLocator, String folder, String deliveryHeader, + private SieveMailet(UsersRepository usersRepos, MailboxManager mailboxManager, ResourceLocator resourceLocator, String folder, boolean consume, boolean verbose, boolean quiet) throws MessagingException { this.usersRepos = usersRepos; @@ -151,7 +146,6 @@ public class SieveMailet extends GenericMailet implements Poster { this.mailboxManager = mailboxManager; this.folder = folder; this.actionDispatcher = new ActionDispatcher(); - this.deliveryHeader = deliveryHeader; this.consume = consume; this.isInfo = verbose || !quiet; this.verbose = verbose; @@ -346,37 +340,33 @@ public class SieveMailet extends GenericMailet implements Poster { Enumeration headers; InternetHeaders deliveredTo = new InternetHeaders(); - if (deliveryHeader != null) { - // Copy any Delivered-To headers from the message - headers = message - .getMatchingHeaders(new String[] { deliveryHeader }); - while (headers.hasMoreElements()) { - Header header = (Header) headers.nextElement(); - deliveredTo.addHeader(header.getName(), header.getValue()); - } + + // Copy any Delivered-To headers from the message + headers = message + .getMatchingHeaders(new String[] { DELIVERED_TO }); + while (headers.hasMoreElements()) { + Header header = (Header) headers.nextElement(); + deliveredTo.addHeader(header.getName(), header.getValue()); } + for (Iterator<MailAddress> i = recipients.iterator(); i.hasNext();) { MailAddress recipient = i.next(); try { - if (deliveryHeader != null) { - // Add qmail's de facto standard Delivered-To header - message.addHeader(deliveryHeader, recipient.toString()); - } + // Add qmail's de facto standard Delivered-To header + message.addHeader(DELIVERED_TO, recipient.toString()); storeMail(mail.getSender(), recipient, mail); - if (deliveryHeader != null) { - if (i.hasNext()) { - // Remove headers but leave all placeholders - message.removeHeader(deliveryHeader); - headers = deliveredTo.getAllHeaders(); - // And restore any original Delivered-To headers - while (headers.hasMoreElements()) { - Header header = (Header) headers.nextElement(); - message.addHeader(header.getName(), header - .getValue()); - } + if (i.hasNext()) { + // Remove headers but leave all placeholders + message.removeHeader(DELIVERED_TO); + headers = deliveredTo.getAllHeaders(); + // And restore any original Delivered-To headers + while (headers.hasMoreElements()) { + Header header = (Header) headers.nextElement(); + message.addHeader(header.getName(), header + .getValue()); } } } catch (Exception ex) { http://git-wip-us.apache.org/repos/asf/james-project/blob/375ef686/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java index fa8242d..642d087 100644 --- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java +++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/delivery/ToRecipientFolder.java @@ -95,7 +95,6 @@ public class ToRecipientFolder extends GenericMailet { .mailboxManager(mailboxManager) .userRepository(usersRepository) .resourceLocator(ResourceLocatorImpl.instanciate(usersRepository, sieveRepository)) - .deliveryHeader("Delivered-To") .folder(getInitParameter(FOLDER_PARAMETER, "INBOX")) .consume(getInitParameter(CONSUME_PARAMETER, false)) .verbose(getInitParameter("verbose", false)) http://git-wip-us.apache.org/repos/asf/james-project/blob/375ef686/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java ---------------------------------------------------------------------- diff --git a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java index 4155f46..9df40ee 100644 --- a/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java +++ b/server/mailet/mailets/src/test/java/org/apache/james/transport/mailets/delivery/SieveMailetTest.java @@ -108,7 +108,6 @@ public class SieveMailetTest { .mailboxManager(mailboxManager) .resourceLocator(resourceLocator) .folder("INBOX") - .deliveryHeader("DELIVERY_HEADER") .consume(true) .build(); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
