1 17 18 package org.apache.james.transport.matchers; 19 20 import org.apache.james.util.RFC2822Headers; 21 import org.apache.mailet.GenericMatcher; 22 import org.apache.mailet.Mail; 23 24 import javax.mail.Header ; 25 import javax.mail.internet.MimeMessage ; 26 import java.util.Collection ; 27 import java.util.Enumeration ; 28 29 33 34 public class RelayLimit extends GenericMatcher { 35 int limit = 30; 36 37 public void init() { 38 limit = Integer.parseInt(getCondition()); 39 } 40 41 public Collection match(Mail mail) throws javax.mail.MessagingException { 42 MimeMessage mm = mail.getMessage(); 43 int count = 0; 44 for (Enumeration e = mm.getAllHeaders(); e.hasMoreElements();) { 45 Header hdr = (Header )e.nextElement(); 46 if (hdr.getName().equals(RFC2822Headers.RECEIVED)) { 47 count++; 48 } 49 } 50 if (count >= limit) { 51 return mail.getRecipients(); 52 } else { 53 return null; 54 } 55 } 56 } 57 | Popular Tags |