Author: norman
Date: Sat Nov 25 14:53:27 2006
New Revision: 479225

URL: http://svn.apache.org/viewvc?view=rev&rev=479225
Log:
RemoteDelivery can now be configured to use a diffrent maxretry count for 
domain for which no valid record were found. I hope this makes all happy now

Modified:
    james/server/trunk/src/conf/james-config.xml
    
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java

Modified: james/server/trunk/src/conf/james-config.xml
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/conf/james-config.xml?view=diff&rev=479225&r1=479224&r2=479225
==============================================================================
--- james/server/trunk/src/conf/james-config.xml (original)
+++ james/server/trunk/src/conf/james-config.xml Sat Nov 25 14:53:27 2006
@@ -590,6 +590,10 @@
             <delayTime>  3 hours </delayTime>
             <delayTime>  6 hours </delayTime>
             <maxRetries> 25 </maxRetries>
+            
+            <!-- The max reties which will used if no A or MX record for the 
domain was found. -->
+            <!-- If 0 it will fail on first time -->
+            <maxDnsProblemRetries> 0 </maxDnsProblemRetries>
 
             <!-- The number of threads that should be trying to deliver 
outgoing messages -->
             <deliveryThreads> 1 </deliveryThreads>

Modified: 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java?view=diff&rev=479225&r1=479224&r2=479225
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/mailets/RemoteDelivery.java
 Sat Nov 25 14:53:27 2006
@@ -225,6 +225,9 @@
     private MultipleDelayFilter delayFilter = new MultipleDelayFilter 
();//used by accept to selcet the next mail ready for processing
     private Properties defprops = new Properties(); // default properties for 
the javamail Session
     
+    // The retry count dnsProblemErrors
+    private int dnsProblemRetry = 0;
+    
     /**
      * Initialize the mailet
      */
@@ -376,7 +379,12 @@
                 defprops.put(name,getInitParameter(name));
             }
             
-        }  
+        }
+        
+        String dnsRetry = getInitParameter("maxDnsProblemRetries");
+        if (dnsRetry != null && !dnsRetry.equals("")) {
+            dnsProblemRetry = Integer.parseInt(dnsRetry); 
+        }
     }
 
     /*
@@ -480,9 +488,18 @@
                         .append(host)
                         .append(".  I cannot determine where to send this 
message.");
                     
-                    // The domain has no dns entry.. Return a permanent error
-                    return failMessage(mail, new 
MessagingException(exceptionBuffer.toString()), true);
-
+                    int retry = 0;
+                    try {
+                        retry = Integer.parseInt(mail.getErrorMessage());
+                    } catch (NumberFormatException e) {
+                        // Unable to parse retryCount 
+                    }
+                    if (retry == 0 || retry > dnsProblemRetry) { 
+                        // The domain has no dns entry.. Return a permanent 
error
+                        return failMessage(mail, new 
MessagingException(exceptionBuffer.toString()), true);
+                    } else {
+                        return failMessage(mail, new 
MessagingException(exceptionBuffer.toString()), false);
+                    }
                 }
             } else {
                 targetServers = getGatewaySMTPHostAddresses(gatewayServer);



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to