1 package org.columba.mail.filter.plugins; 19 20 import org.columba.addressbook.facade.IContactFacade; 21 import org.columba.addressbook.facade.IContactItem; 22 import org.columba.addressbook.facade.IFolderFacade; 23 import org.columba.api.exception.ServiceNotFoundException; 24 import org.columba.core.filter.AbstractFilter; 25 import org.columba.core.filter.FilterCriteria; 26 import org.columba.core.filter.IFilterCriteria; 27 import org.columba.core.folder.api.IFolder; 28 import org.columba.mail.connector.ServiceConnector; 29 import org.columba.mail.folder.IMailbox; 30 import org.columba.ristretto.message.Address; 31 import org.columba.ristretto.message.Header; 32 import org.columba.ristretto.parser.AddressParser; 33 34 40 public class AddressbookFilter extends AbstractFilter { 41 42 public AddressbookFilter() { 43 44 } 45 46 50 public boolean process(IFolder folder, Object uid) throws Exception { 51 Header header = ((IMailbox) folder).getHeaderFields(uid, 52 new String [] { "From" }); 53 String from = header.get("From"); 54 55 Address address = null; 56 try { 57 address = AddressParser.parseAddress(from); 58 } catch (Exception ex) { 59 return false; 60 } 61 62 IFolderFacade folderFacade = null; 63 IContactFacade contactFacade = null; 64 try { 65 folderFacade = ServiceConnector.getFolderFacade(); 66 contactFacade = ServiceConnector.getContactFacade(); 67 } catch (ServiceNotFoundException e) { 68 e.printStackTrace(); 69 return false; 70 } 71 72 org.columba.addressbook.facade.IFolder contactFolder = folderFacade.getCollectedAddresses(); 73 String contactId = contactFacade.findByEmailAddress(contactFolder.getId(), address.getMailAddress()); 74 if ( contactId != null ) return true; 75 76 return false; 77 } 78 79 82 public void setUp(IFilterCriteria f) { 83 84 } 85 } | Popular Tags |