1 17 18 package org.apache.james.transport.matchers; 19 20 import org.apache.mailet.GenericMatcher; 21 import org.apache.mailet.Mail; 22 23 import javax.mail.Header ; 24 import javax.mail.MessagingException ; 25 import javax.mail.internet.MimeMessage ; 26 import java.util.Collection ; 27 import java.util.Enumeration ; 28 import java.util.Locale ; 29 30 37 public class SizeGreaterThan extends GenericMatcher { 38 39 int cutoff = 0; 40 41 public void init() { 42 String amount = getCondition().trim().toLowerCase(Locale.US); 43 if (amount.endsWith("k")) { 44 amount = amount.substring(0, amount.length() - 1); 45 cutoff = Integer.parseInt(amount) * 1024; 46 } else if (amount.endsWith("m")) { 47 amount = amount.substring(0, amount.length() - 1); 48 cutoff = Integer.parseInt(amount) * 1024 * 1024; 49 } else { 50 cutoff = Integer.parseInt(amount); 51 } 52 } 53 54 public Collection match(Mail mail) throws MessagingException { 55 MimeMessage message = mail.getMessage(); 56 int size = message.getSize(); 58 Enumeration e = message.getAllHeaders(); 59 while (e.hasMoreElements()) { 60 size += ((Header )e.nextElement()).toString().length(); 61 } 62 if (size > cutoff) { 63 return mail.getRecipients(); 64 } else { 65 return null; 66 } 67 } 68 } 69 | Popular Tags |