Example usage for javax.mail.search ComparisonTerm EQ

List of usage examples for javax.mail.search ComparisonTerm EQ

Introduction

In this page you can find the example usage for javax.mail.search ComparisonTerm EQ.

Prototype

int EQ

To view the source code for javax.mail.search ComparisonTerm EQ.

Click Source Link

Usage

From source file:search.java

public static void main(String argv[]) {
    int optind;/*ww w.  j a v a 2 s . co m*/

    String subject = null;
    String from = null;
    boolean or = false;
    boolean today = false;

    for (optind = 0; optind < argv.length; optind++) {
        if (argv[optind].equals("-T")) {
            protocol = argv[++optind];
        } else if (argv[optind].equals("-H")) {
            host = argv[++optind];
        } else if (argv[optind].equals("-U")) {
            user = argv[++optind];
        } else if (argv[optind].equals("-P")) {
            password = argv[++optind];
        } else if (argv[optind].equals("-or")) {
            or = true;
        } else if (argv[optind].equals("-D")) {
            debug = true;
        } else if (argv[optind].equals("-f")) {
            mbox = argv[++optind];
        } else if (argv[optind].equals("-L")) {
            url = argv[++optind];
        } else if (argv[optind].equals("-subject")) {
            subject = argv[++optind];
        } else if (argv[optind].equals("-from")) {
            from = argv[++optind];
        } else if (argv[optind].equals("-today")) {
            today = true;
        } else if (argv[optind].equals("--")) {
            optind++;
            break;
        } else if (argv[optind].startsWith("-")) {
            System.out.println("Usage: search [-D] [-L url] [-T protocol] [-H host] "
                    + "[-U user] [-P password] [-f mailbox] "
                    + "[-subject subject] [-from from] [-or] [-today]");
            System.exit(1);
        } else {
            break;
        }
    }

    try {

        if ((subject == null) && (from == null) && !today) {
            System.out.println("Specify either -subject, -from or -today");
            System.exit(1);
        }

        // Get a Properties object
        Properties props = System.getProperties();

        // Get a Session object
        Session session = Session.getInstance(props, null);
        session.setDebug(debug);

        // Get a Store object
        Store store = null;
        if (url != null) {
            URLName urln = new URLName(url);
            store = session.getStore(urln);
            store.connect();
        } else {
            if (protocol != null)
                store = session.getStore(protocol);
            else
                store = session.getStore();

            // Connect
            if (host != null || user != null || password != null)
                store.connect(host, user, password);
            else
                store.connect();
        }

        // Open the Folder

        Folder folder = store.getDefaultFolder();
        if (folder == null) {
            System.out.println("Cant find default namespace");
            System.exit(1);
        }

        folder = folder.getFolder(mbox);
        if (folder == null) {
            System.out.println("Invalid folder");
            System.exit(1);
        }

        folder.open(Folder.READ_ONLY);
        SearchTerm term = null;

        if (subject != null)
            term = new SubjectTerm(subject);
        if (from != null) {
            FromStringTerm fromTerm = new FromStringTerm(from);
            if (term != null) {
                if (or)
                    term = new OrTerm(term, fromTerm);
                else
                    term = new AndTerm(term, fromTerm);
            } else
                term = fromTerm;
        }
        if (today) {
            ReceivedDateTerm dateTerm = new ReceivedDateTerm(ComparisonTerm.EQ, new Date());
            if (term != null) {
                if (or)
                    term = new OrTerm(term, dateTerm);
                else
                    term = new AndTerm(term, dateTerm);
            } else
                term = dateTerm;
        }

        Message[] msgs = folder.search(term);
        System.out.println("FOUND " + msgs.length + " MESSAGES");
        if (msgs.length == 0) // no match
            System.exit(1);

        // Use a suitable FetchProfile
        FetchProfile fp = new FetchProfile();
        fp.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(msgs, fp);

        for (int i = 0; i < msgs.length; i++) {
            System.out.println("--------------------------");
            System.out.println("MESSAGE #" + (i + 1) + ":");
            dumpPart(msgs[i]);
        }

        folder.close(false);
        store.close();
    } catch (Exception ex) {
        System.out.println("Oops, got exception! " + ex.getMessage());
        ex.printStackTrace();
    }

    System.exit(1);
}

From source file:org.exist.xquery.modules.mail.MessageListFunctions.java

private int parseComparisonAttribute(Node terms) throws XPathException {
    int cp = ComparisonTerm.EQ;

    String comp = ((Element) terms).getAttribute("comparison");

    if (comp != null && comp.length() > 0) {
        if (comp.equalsIgnoreCase("eq")) {
            cp = ComparisonTerm.EQ;//  ww w.j a v  a 2s  . co m
        } else if (comp.equalsIgnoreCase("ge")) {
            cp = ComparisonTerm.GE;
        } else if (comp.equalsIgnoreCase("gt")) {
            cp = ComparisonTerm.GT;
        } else if (comp.equalsIgnoreCase("le")) {
            cp = ComparisonTerm.LE;
        } else if (comp.equalsIgnoreCase("lt")) {
            cp = ComparisonTerm.LT;
        } else if (comp.equalsIgnoreCase("ne")) {
            cp = ComparisonTerm.NE;
        } else {
            throw (new XPathException(this, "Invalid comparison: " + comp + ", for term with type: "
                    + ((Element) terms).getAttribute("type")));
        }
    } else {
        throw (new XPathException(this, "comparison attribute must be specified for term with type: "
                + ((Element) terms).getAttribute("type")));
    }

    return (cp);
}

From source file:org.pentaho.di.job.entries.getpop.MailConnection.java

/**
 * Set filter on message received date./*from  w w  w .  ja  v a 2 s.  c o  m*/
 *
 * @param receiveddate
 *          messages will be filtered on receiveddate
 */
public void setReceivedDateTermEQ(Date receiveddate) {
    if (this.protocol == MailConnectionMeta.PROTOCOL_POP3) {
        log.logError(BaseMessages.getString(PKG, "MailConnection.Error.ReceivedDatePOP3Unsupported"));
    } else {
        addSearchTerm(new ReceivedDateTerm(ComparisonTerm.EQ, receiveddate));
    }
}