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 rd...@apache.org on 2007/01/16 18:53:23 UTC

svn commit: r496798 - /james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java

Author: rdonkin
Date: Tue Jan 16 09:53:23 2007
New Revision: 496798

URL: http://svn.apache.org/viewvc?view=rev&rev=496798
Log:
More user friendly behaviour when script a script throws an exception.

Modified:
    james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java

Modified: james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java?view=diff&rev=496798&r1=496797&r2=496798
==============================================================================
--- james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java (original)
+++ james/server/trunk/src/java/org/apache/james/transport/mailets/sieve/SieveToMultiMailbox.java Tue Jan 16 09:53:23 2007
@@ -37,7 +37,6 @@
 import org.apache.james.mailboxmanager.mailbox.MailboxSession;
 import org.apache.james.mailboxmanager.manager.MailboxManagerProvider;
 import org.apache.james.userrepository.DefaultUser;
-import org.apache.jsieve.SieveException;
 import org.apache.jsieve.SieveFactory;
 import org.apache.jsieve.mail.MailAdapter;
 import org.apache.mailet.GenericMailet;
@@ -201,14 +200,14 @@
         String sieveFileName="../apps/james/var/sieve/"+username+".sieve";
         if (new File(sieveFileName).canRead()) {
             getMailetContext().log("Passing over to sieve delivery for "+username);
-            storeMessageSieve(sieveFileName, mail);
+            storeMessageSieve(sieveFileName, username, mail);
         } else {
             getMailetContext().log(new File(sieveFileName).getAbsolutePath()+ " does not exists");
             storeMessageInbox(username, mail.getMessage());
         }
     }
     
-    void storeMessageSieve(String sieveFileName, Mail aMail) throws MessagingException {
+    void storeMessageSieve(String sieveFileName, String username, Mail aMail) throws MessagingException {
         // Evaluate the script against the mail
         try
         {
@@ -221,20 +220,14 @@
         }
         catch (Exception ex)
         {
-            log("Exception evaluating Sieve script", ex);
-            // If there were errors, we redirect the email to the ERROR
-            // processor.
-            // In order for this server to meet the requirements of the SMTP
-            // specification,
-            // mails on the ERROR processor must be returned to the sender.
-            // Note that this
-            // email doesn't include any details regarding the details of the
-            // failure(s).
-            // In the future we may wish to address this.
-            getMailetContext().sendMail(aMail.getSender(),
-                    aMail.getRecipients(), aMail.getMessage(), Mail.ERROR);
-            throw new MessagingException("Exception evaluating Sieve script",
-                    ex);
+            //
+            // SLIEVE is a mail filtering protocol.
+            // Rejecting the mail because it cannot be filtered
+            // seems very unfriendly.
+            // So just log and store in INBOX.
+            //
+            log("Cannot evaluate Sieve script. Storing mail in user INBOX.", ex);
+            storeMessageInbox(username, aMail.getMessage());
         }
     }
     



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