⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 importmatcher.java

📁 开源项目CRM之OpenCustomer
💻 JAVA
字号:
package org.opencustomer.mail.james;

import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.StringTokenizer;

import javax.mail.MessagingException;

import org.apache.mailet.GenericMatcher;
import org.apache.mailet.Mail;
import org.apache.mailet.MailAddress;
import org.opencustomer.application.db.dao.crm.PersonDAO;
import org.opencustomer.db.Database;

public class ImportMatcher extends GenericMatcher
{
    private Collection adresses;

    private Set<String> blacklist;

    public void init() throws MessagingException
    {
        Database.doInit();

        StringTokenizer st = new StringTokenizer(getCondition(), ", \t", false);
        blacklist = new HashSet<String>();
        while (st.hasMoreTokens())
        {
            blacklist.add(st.nextToken());
        }
    }

    public Collection match(Mail mail) throws MessagingException
    {
        // System.out.println("OcImport");
        
        boolean rcnfound = true;

        // Blacklist
        boolean found = false;
        Collection<MailAddress> recipients = mail.getRecipients();
        Collection<MailAddress> addresses = new HashSet<MailAddress>();
        addresses.addAll(recipients);
        addresses.add(mail.getSender());
        
        for(MailAddress address : addresses)
        {
            Iterator bit = blacklist.iterator();
            found = false;
            String addressitem = address.toString();
            for(String pattern : blacklist)
            {
                if (addressitem.contains(pattern))
                {
                    found = true;
                    break;
                }
            }
            if (!found)
                break;
        }
        if (found)
            return null;

        // Emfaenger im OC
        if (new PersonDAO().getByMail(mail.getSender().toString()).isEmpty())
            return null;

        // Absender im OC
        for (MailAddress address : recipients)
        {
            if (!(new PersonDAO().getByMail(address.toString()).isEmpty()))
                rcnfound = false;
        }
        if (rcnfound)
            return null;

        return mail.getRecipients();
    }

    public void destroy()
    {
        Database.closeFactory();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -