Author: norman Date: Sat Jul 8 01:30:04 2006 New Revision: 420088 URL: http://svn.apache.org/viewvc?rev=420088&view=rev Log: Move headergeneration to util class
Modified: james/server/trunk/src/java/org/apache/james/transport/mailets/SpamAssassin.java james/server/trunk/src/java/org/apache/james/util/SpamAssassinInvoker.java Modified: james/server/trunk/src/java/org/apache/james/transport/mailets/SpamAssassin.java URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/SpamAssassin.java?rev=420088&r1=420087&r2=420088&view=diff ============================================================================== --- james/server/trunk/src/java/org/apache/james/transport/mailets/SpamAssassin.java (original) +++ james/server/trunk/src/java/org/apache/james/transport/mailets/SpamAssassin.java Sat Jul 8 01:30:04 2006 @@ -16,6 +16,8 @@ ***********************************************************************/ package org.apache.james.transport.mailets; +import java.util.Iterator; + import org.apache.james.util.SpamAssassinInvoker; import org.apache.mailet.GenericMailet; import org.apache.mailet.Mail; @@ -43,8 +45,6 @@ int spamdPort; - String subjectPrefix; - public void init() throws MessagingException { spamdHost = getInitParameter("spamdHost"); if (spamdHost == null || spamdHost.equals("")) { @@ -73,23 +73,16 @@ // Invoke spamassian connection and scan the message SpamAssassinInvoker sa = new SpamAssassinInvoker(spamdHost, spamdPort); - boolean spam = sa.scanMail(message); - String hits = sa.getHits(); - String required = sa.getRequiredHits(); - - // message was spam - if (spam) { - // add headers - message.setHeader("X-Spam-Flag", "YES"); - message.setHeader("X-Spam-Status", new StringBuffer( - "Yes, hits=").append(hits).append(" required=").append( - required).toString()); - } else { - // add headers - message.setHeader("X-Spam-Status", - new StringBuffer("No, hits=").append(hits).append( - " required=").append(required).toString()); + sa.scanMail(message); + + Iterator headers = sa.getHeaders().keySet().iterator(); + + // Add headers + while (headers.hasNext()) { + String key = headers.next().toString(); + message.setHeader(key, (String) sa.getHeaders().get(key)); } + message.saveChanges(); } catch (MessagingException e) { log(e.getMessage()); Modified: james/server/trunk/src/java/org/apache/james/util/SpamAssassinInvoker.java URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/util/SpamAssassinInvoker.java?rev=420088&r1=420087&r2=420088&view=diff ============================================================================== --- james/server/trunk/src/java/org/apache/james/util/SpamAssassinInvoker.java (original) +++ james/server/trunk/src/java/org/apache/james/util/SpamAssassinInvoker.java Sat Jul 8 01:30:04 2006 @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; +import java.util.HashMap; import java.util.StringTokenizer; /** @@ -42,6 +43,8 @@ String required = "?"; + HashMap headers = new HashMap(); + public SpamAssassinInvoker(String spamdHost, int spamdPort) { this.spamdHost = spamdHost; this.spamdPort = spamdPort; @@ -88,9 +91,20 @@ required = t.nextToken(); if (spam) { + // message was spam + headers.put("X-Spam-Flag", "YES"); + headers.put("X-Spam-Status", new StringBuffer( + "Yes, hits=").append(hits).append(" required=") + .append(required).toString()); + // spam detected return true; } else { + // add headers + headers.put("X-Spam-Status", new StringBuffer( + "No, hits=").append(hits).append(" required=") + .append(required).toString()); + return false; } } @@ -133,5 +147,14 @@ */ public String getRequiredHits() { return required; + } + + /** + * Return the headers which spamd should add + * + * @return headers HashMap of headers to add + */ + public HashMap getHeaders() { + return headers; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]