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 2016/07/08 14:46:37 UTC

[2/5] james-project git commit: JAMES-1790 don't detect mailing lists on sender when none

JAMES-1790 don't detect mailing lists on sender when none


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a8d2de92
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a8d2de92
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a8d2de92

Branch: refs/heads/master
Commit: a8d2de92a8a3e7a09ddd08b8dd10f418183729e5
Parents: 2a7c50f
Author: Matthieu Baechler <ma...@linagora.com>
Authored: Mon Jul 4 12:08:44 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Fri Jul 8 14:24:55 2016 +0200

----------------------------------------------------------------------
 .../base/AutomaticallySentMailDetectorImpl.java | 37 ++++++++++++++------
 1 file changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a8d2de92/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
----------------------------------------------------------------------
diff --git a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
index 72fad65..b6360fb 100644
--- a/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
+++ b/mailet/base/src/main/java/org/apache/mailet/base/AutomaticallySentMailDetectorImpl.java
@@ -32,9 +32,19 @@ import org.apache.james.mime4j.parser.MimeStreamParser;
 import org.apache.james.mime4j.stream.BodyDescriptor;
 import org.apache.james.mime4j.stream.MimeConfig;
 import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
 
 public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailDetector {
 
+    private static final String[] MAILING_LIST_HEADERS = new String[] {
+            "List-Help",
+            "List-Subscribe",
+            "List-Unsubscribe",
+            "List-Owner",
+            "List-Post",
+            "List-Id",
+            "List-Archive" };
+
     public boolean isAutomaticallySent(Mail mail) throws MessagingException {
         return isMailingList(mail) ||
             isAutoSubmitted(mail) ||
@@ -42,20 +52,27 @@ public class AutomaticallySentMailDetectorImpl implements AutomaticallySentMailD
     }
 
     public boolean isMailingList(Mail mail) throws MessagingException {
-        String localPart = mail.getSender().getLocalPart();
+        return senderIsMailingList(mail)
+            || headerIsMailingList(mail);
+    }
+
+    private boolean senderIsMailingList(Mail mail) {
+        MailAddress sender = mail.getSender();
+        if (sender == null) {
+            return false;
+        }
+
+        String localPart = sender.getLocalPart();
         return localPart.startsWith("owner-")
             || localPart.endsWith("-request")
             || localPart.equalsIgnoreCase("MAILER-DAEMON")
             || localPart.equalsIgnoreCase("LISTSERV")
-            || localPart.equalsIgnoreCase("majordomo")
-            || mail.getMessage()
-            .getMatchingHeaders(new String[]{"List-Help",
-                "List-Subscribe",
-                "List-Unsubscribe",
-                "List-Owner",
-                "List-Post",
-                "List-Id",
-                "List-Archive"})
+            || localPart.equalsIgnoreCase("majordomo");
+    }
+
+    private boolean headerIsMailingList(Mail mail) throws MessagingException {
+        return mail.getMessage()
+            .getMatchingHeaders(MAILING_LIST_HEADERS)
             .hasMoreElements();
     }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org