1 21 package org.jsmtpd.plugins.filters.SA; 22 23 import org.apache.commons.logging.Log; 24 import org.apache.commons.logging.LogFactory; 25 import org.jsmtpd.core.common.PluginInitException; 26 import org.jsmtpd.core.common.filter.IFilter; 27 import org.jsmtpd.core.mail.Email; 28 29 39 public class SAFilter implements IFilter { 40 41 private String spamdHost; 42 private int spamdPort; 43 private Log log = LogFactory.getLog(SAFilter.class); 44 private int socketTimeout = 0; 45 private int skipIfSizeMore = -1; 46 47 50 public boolean doFilter(Email input) { 51 52 if (skipIfSizeMore != -1) { 54 if (input.getSize() > skipIfSizeMore) { 55 log.info("Mail " + input.getDiskName() + " skipped filter, it's size exceds the treshold set"); 56 return true; 57 } 58 } 59 SAChat chat = new SAChat(spamdHost, spamdPort, socketTimeout); 60 return (chat.checkMail(input)); 61 62 } 63 64 67 public String getPluginName() { 68 return "Jsmtpd-SA SpamAssassin filter"; 69 } 70 71 74 public void initPlugin() throws PluginInitException { 75 log.debug(getPluginName() + " initialized"); 76 } 77 78 81 public void shutdownPlugin() { 82 } 83 84 86 public void setSpamdHost(String hostname) { 87 spamdHost = hostname; 88 } 89 90 public void setSpamdPort(int port) { 91 spamdPort = port; 92 } 93 94 public void setSocketTimeout(int time) { 95 socketTimeout = time; 96 } 97 98 public void setSkipIfSizeMore(int skipIfSizeMore) { 99 this.skipIfSizeMore = skipIfSizeMore; 100 } 101 } | Popular Tags |