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 ro...@apache.org on 2017/01/11 09:26:26 UTC

[38/50] [abbrv] james-project git commit: MAILET-115 Remove abstract service with original mail implementation

MAILET-115 Remove abstract service with original mail implementation


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

Branch: refs/heads/master
Commit: 30c8a8c2acbac99c97811cfc479037e4d0bde753
Parents: 6a87096
Author: Antoine Duprat <ad...@apache.org>
Authored: Thu Nov 17 15:15:00 2016 +0100
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 11 10:03:31 2017 +0700

----------------------------------------------------------------------
 .../apache/james/transport/mailets/Bounce.java  |   3 +-
 .../apache/james/transport/mailets/Forward.java |   6 +
 .../transport/mailets/NotifyPostmaster.java     |   6 +
 .../james/transport/mailets/NotifySender.java   |   6 +
 .../james/transport/mailets/Redirect.java       |   6 +
 .../apache/james/transport/mailets/Resend.java  |   6 +
 .../mailets/redirect/AbstractRedirect.java      | 122 +------------
 .../mailets/redirect/ProcessRedirectNotify.java | 179 +++++++++++++++++++
 8 files changed, 212 insertions(+), 122 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
index d3c8595..40cebb5 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Bounce.java
@@ -28,6 +28,7 @@ import org.apache.james.transport.mailets.redirect.AbstractRedirect;
 import org.apache.james.transport.mailets.redirect.InitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetsMessage;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
@@ -208,7 +209,7 @@ public class Bounce extends AbstractRedirect {
             if (getInitParameters().isDebug()) {
                 log("Processing a bounce request for a message with a reverse path.  The bounce will be sent to " + originalMail.getSender().toString());
             }
-            super.service(originalMail);
+            ProcessRedirectNotify.from(this).process(originalMail);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
index 97bd62b..77b3c6d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Forward.java
@@ -28,6 +28,7 @@ import javax.mail.internet.InternetAddress;
 import org.apache.james.transport.mailets.redirect.AbstractRedirect;
 import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.RedirectMailetInitParameters;
 import org.apache.james.transport.mailets.redirect.TypeCode;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
@@ -206,4 +207,9 @@ public class Forward extends AbstractRedirect {
     protected MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException {
         return new MimeMessageModifier(newMail.getMessage());
     }
+
+    @Override
+    public void service(Mail originalMail) throws MessagingException {
+        ProcessRedirectNotify.from(this).process(originalMail);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
index 8059811..2c309bf 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifyPostmaster.java
@@ -29,6 +29,7 @@ import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetsMessage;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
@@ -220,4 +221,9 @@ public class NotifyPostmaster extends AbstractRedirect {
     protected MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException {
         return new MimeMessageModifier(originalMail.getMessage());
     }
+
+    @Override
+    public void service(Mail originalMail) throws MessagingException {
+        ProcessRedirectNotify.from(this).process(originalMail);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
index 3db3d39..f426d1e 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/NotifySender.java
@@ -29,6 +29,7 @@ import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetInitParameters;
 import org.apache.james.transport.mailets.redirect.NotifyMailetsMessage;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.SpecialAddress;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
@@ -220,4 +221,9 @@ public class NotifySender extends AbstractRedirect {
     protected MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException {
         return new MimeMessageModifier(originalMail.getMessage());
     }
+
+    @Override
+    public void service(Mail originalMail) throws MessagingException {
+        ProcessRedirectNotify.from(this).process(originalMail);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
index 43e4e98..fa08a6d 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Redirect.java
@@ -27,6 +27,7 @@ import javax.mail.internet.InternetAddress;
 import org.apache.james.transport.mailets.redirect.AbstractRedirect;
 import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.RedirectMailetInitParameters;
 import org.apache.james.transport.mailets.redirect.TypeCode;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
@@ -440,4 +441,9 @@ public class Redirect extends AbstractRedirect {
     protected MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException {
         return new MimeMessageModifier(newMail.getMessage());
     }
+
+    @Override
+    public void service(Mail originalMail) throws MessagingException {
+        ProcessRedirectNotify.from(this).process(originalMail);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
index a5869d5..ad84e41 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/Resend.java
@@ -27,6 +27,7 @@ import javax.mail.internet.InternetAddress;
 import org.apache.james.transport.mailets.redirect.AbstractRedirect;
 import org.apache.james.transport.mailets.redirect.AddressExtractor;
 import org.apache.james.transport.mailets.redirect.InitParameters;
+import org.apache.james.transport.mailets.redirect.ProcessRedirectNotify;
 import org.apache.james.transport.mailets.redirect.RedirectMailetInitParameters;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
 import org.apache.james.transport.mailets.utils.MimeMessageUtils;
@@ -403,4 +404,9 @@ public class Resend extends AbstractRedirect {
     protected MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException {
         return new MimeMessageModifier(newMail.getMessage());
     }
+
+    @Override
+    public void service(Mail originalMail) throws MessagingException {
+        ProcessRedirectNotify.from(this).process(originalMail);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
index 528e604..70ccf76 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/AbstractRedirect.java
@@ -23,11 +23,8 @@ import java.util.List;
 
 import javax.inject.Inject;
 import javax.mail.MessagingException;
-import javax.mail.Session;
 import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
 
-import org.apache.james.core.MailImpl;
 import org.apache.james.dnsservice.api.DNSService;
 import org.apache.james.transport.mailets.Redirect;
 import org.apache.james.transport.mailets.utils.MimeMessageModifier;
@@ -313,124 +310,7 @@ public abstract class AbstractRedirect extends GenericMailet {
      * @throws MessagingException if a problem arises formulating the redirected mail
      */
     @Override
-    public void service(Mail originalMail) throws MessagingException {
-
-        boolean keepMessageId = false;
-
-        // duplicates the Mail object, to be able to modify the new mail keeping
-        // the original untouched
-        MailImpl newMail = new MailImpl(originalMail);
-        try {
-            MailModifier mailModifier = MailModifier.builder()
-                    .mailet(this)
-                    .mail(newMail)
-                    .dns(dns)
-                    .build();
-            mailModifier.setRemoteAddr();
-            mailModifier.setRemoteHost();
-
-            if (getInitParameters().isDebug()) {
-                log("New mail - sender: " + newMail.getSender() + ", recipients: " + arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
-                        + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
-            }
-
-            // Create the message
-            if (!getInitParameters().getInLineType().equals(TypeCode.UNALTERED)) {
-                if (getInitParameters().isDebug()) {
-                    log("Alter message");
-                }
-                newMail.setMessage(new MimeMessage(Session.getDefaultInstance(System.getProperties(), null)));
-
-                // handle the new message if altered
-                MailMessageAlteringUtils.from(this)
-                    .originalMail(originalMail)
-                    .newMail(newMail)
-                    .alterNewMessage();
-
-            } else {
-                // if we need the original, create a copy of this message to
-                // redirect
-                if (getInitParameters().getPassThrough()) {
-                    newMail.setMessage(new MimeMessage(originalMail.getMessage()) {
-                        protected void updateHeaders() throws MessagingException {
-                            if (getMessageID() == null)
-                                super.updateHeaders();
-                            else {
-                                modified = false;
-                            }
-                        }
-                    });
-                }
-                if (getInitParameters().isDebug()) {
-                    log("Message resent unaltered.");
-                }
-                keepMessageId = true;
-            }
-
-            // Set additional headers
-
-            mailModifier.setRecipients(getRecipients(originalMail));
-            mailModifier.setTo(getTo(originalMail));
-            mailModifier.setSubjectPrefix(originalMail);
-            mailModifier.setReplyTo(getReplyTo(originalMail), originalMail);
-            mailModifier.setReversePath(getReversePath(originalMail), originalMail);
-            mailModifier.setIsReply(getInitParameters().isReply(), originalMail);
-            mailModifier.setSender(getSender(originalMail), originalMail);
-            mailModifier.initializeDateIfNotPresent();
-            if (keepMessageId) {
-                mailModifier.setMessageId(originalMail);
-            }
-            newMail =  mailModifier.getMail();
-
-            newMail.getMessage().saveChanges();
-            newMail.removeAllAttributes();
-
-            if (senderDomainIsValid(newMail)) {
-                // Send it off...
-                getMailetContext().sendMail(newMail);
-            } else {
-                String logBuffer = getMailetName() + " mailet cannot forward " + originalMail.getName() + ". Invalid sender domain for " + newMail.getSender() + ". Consider using the Resend mailet " + "using a different sender.";
-                throw new MessagingException(logBuffer);
-            }
-
-        } finally {
-            newMail.dispose();
-        }
-
-        if (!getInitParameters().getPassThrough()) {
-            originalMail.setState(Mail.GHOST);
-        }
-    }
+    public abstract void service(Mail originalMail) throws MessagingException;
 
     protected abstract MimeMessageModifier getMimeMessageModifier(Mail newMail, Mail originalMail) throws MessagingException;
-
-    /**
-     * <p>
-     * Checks if a sender domain of <i>mail</i> is valid.
-     * </p>
-     * <p>
-     * If we do not do this check, and someone uses a redirection mailet in a
-     * processor initiated by SenderInFakeDomain, then a fake sender domain will
-     * cause an infinite loop (the forwarded e-mail still appears to come from a
-     * fake domain).<br>
-     * Although this can be viewed as a configuration error, the consequences of
-     * such a mis-configuration are severe enough to warrant protecting against
-     * the infinite loop.
-     * </p>
-     * <p>
-     * This check can be skipped if {@link #getFakeDomainCheck(Mail)} returns
-     * true.
-     * </p>
-     *
-     * @param mail the mail object to check
-     * @return true if the if the sender is null or
-     *         {@link org.apache.mailet.MailetContext#getMailServers} returns
-     *         true for the sender host part
-     */
-    @SuppressWarnings("deprecation")
-    protected final boolean senderDomainIsValid(Mail mail) throws MessagingException {
-        return !getInitParameters().getFakeDomainCheck()
-                || mail.getSender() == null
-                || !getMailetContext().getMailServers(mail.getSender().getDomain()).isEmpty();
-    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/30c8a8c2/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
new file mode 100644
index 0000000..e41ca83
--- /dev/null
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/mailets/redirect/ProcessRedirectNotify.java
@@ -0,0 +1,179 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.transport.mailets.redirect;
+
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.james.core.MailImpl;
+import org.apache.mailet.Mail;
+
+public class ProcessRedirectNotify {
+
+    public static ProcessRedirectNotify from(AbstractRedirect mailet) {
+        return new ProcessRedirectNotify(mailet);
+    }
+
+    private final AbstractRedirect mailet;
+    private final boolean isDebug;
+
+    private ProcessRedirectNotify(AbstractRedirect mailet) {
+        this.mailet = mailet;
+        this.isDebug = mailet.getInitParameters().isDebug();
+    }
+
+    public void process(Mail originalMail) throws MessagingException {
+
+        // duplicates the Mail object, to be able to modify the new mail keeping
+        // the original untouched
+        MailImpl newMail = new MailImpl(originalMail);
+        try {
+            MailModifier mailModifier = MailModifier.builder()
+                    .mailet(mailet)
+                    .mail(newMail)
+                    .dns(mailet.dns)
+                    .build();
+            mailModifier.setRemoteAddr();
+            mailModifier.setRemoteHost();
+
+            if (isDebug) {
+                mailet.log("New mail - sender: " + newMail.getSender() + ", recipients: " + mailet.arrayToString(newMail.getRecipients().toArray()) + ", name: " + newMail.getName() + ", remoteHost: " + newMail.getRemoteHost() + ", remoteAddr: " + newMail.getRemoteAddr() + ", state: " + newMail.getState()
+                        + ", lastUpdated: " + newMail.getLastUpdated() + ", errorMessage: " + newMail.getErrorMessage());
+            }
+
+            // Create the message
+            boolean keepMessageId = keepMessageId();
+            if (!keepMessageId) {
+                createAlterMessage(originalMail, newMail);
+            } else {
+                createUnalteredMessage(originalMail, newMail);
+            }
+
+            // Set additional headers
+
+            mailModifier.setRecipients(mailet.getRecipients(originalMail));
+            mailModifier.setTo(mailet.getTo(originalMail));
+            mailModifier.setSubjectPrefix(originalMail);
+            mailModifier.setReplyTo(mailet.getReplyTo(originalMail), originalMail);
+            mailModifier.setReversePath(mailet.getReversePath(originalMail), originalMail);
+            mailModifier.setIsReply(mailet.getInitParameters().isReply(), originalMail);
+            mailModifier.setSender(mailet.getSender(originalMail), originalMail);
+            mailModifier.initializeDateIfNotPresent();
+            if (keepMessageId) {
+                mailModifier.setMessageId(originalMail);
+            }
+            finalize(newMail);
+
+            if (senderDomainIsValid(newMail)) {
+                // Send it off...
+                mailet.getMailetContext().sendMail(newMail);
+            } else {
+                throw new MessagingException(mailet.getMailetName() + " mailet cannot forward " + originalMail.getName() + ". " +
+                        "Invalid sender domain for " + newMail.getSender() + ". " + 
+                        "Consider using the Resend mailet " + "using a different sender.");
+            }
+
+        } finally {
+            newMail.dispose();
+        }
+
+        if (!mailet.getInitParameters().getPassThrough()) {
+            originalMail.setState(Mail.GHOST);
+        }
+    }
+
+    private void finalize(MailImpl mail) throws MessagingException {
+        mail.getMessage().saveChanges();
+        mail.removeAllAttributes();
+    }
+
+    private boolean keepMessageId() {
+        return mailet.getInitParameters().getInLineType().equals(TypeCode.UNALTERED);
+    }
+
+    private void createAlterMessage(Mail originalMail, MailImpl newMail) throws MessagingException {
+        if (isDebug) {
+            mailet.log("Alter message");
+        }
+        newMail.setMessage(new MimeMessage(Session.getDefaultInstance(System.getProperties(), null)));
+
+        // handle the new message if altered
+        MailMessageAlteringUtils.from(mailet)
+            .originalMail(originalMail)
+            .newMail(newMail)
+            .alterNewMessage();
+    }
+
+    private void createUnalteredMessage(Mail originalMail, MailImpl newMail) throws MessagingException {
+        // if we need the original, create a copy of this message to
+        // redirect
+        if (mailet.getInitParameters().getPassThrough()) {
+            newMail.setMessage(new CopiedMimeMessage(originalMail.getMessage()));
+        }
+        if (isDebug) {
+            mailet.log("Message resent unaltered.");
+        }
+    }
+
+    private static class CopiedMimeMessage extends MimeMessage {
+
+        public CopiedMimeMessage(MimeMessage originalMessage) throws MessagingException {
+            super(originalMessage);
+        }
+
+        protected void updateHeaders() throws MessagingException {
+            if (getMessageID() == null)
+                super.updateHeaders();
+            else {
+                modified = false;
+            }
+        }
+    }
+
+    /**
+     * <p>
+     * Checks if a sender domain of <i>mail</i> is valid.
+     * </p>
+     * <p>
+     * If we do not do this check, and someone uses a redirection mailet in a
+     * processor initiated by SenderInFakeDomain, then a fake sender domain will
+     * cause an infinite loop (the forwarded e-mail still appears to come from a
+     * fake domain).<br>
+     * Although this can be viewed as a configuration error, the consequences of
+     * such a mis-configuration are severe enough to warrant protecting against
+     * the infinite loop.
+     * </p>
+     * <p>
+     * This check can be skipped if {@link #getFakeDomainCheck(Mail)} returns
+     * true.
+     * </p>
+     *
+     * @param mail the mail object to check
+     * @return true if the if the sender is null or
+     *         {@link org.apache.mailet.MailetContext#getMailServers} returns
+     *         true for the sender host part
+     */
+    @SuppressWarnings("deprecation")
+    private boolean senderDomainIsValid(Mail mail) throws MessagingException {
+        return !mailet.getInitParameters().getFakeDomainCheck()
+                || mail.getSender() == null
+                || !mailet.getMailetContext().getMailServers(mail.getSender().getDomain()).isEmpty();
+    }
+}


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