KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > james > transport > matchers > FetchedFrom


1 /***********************************************************************
2  * Copyright (c) 2000-2004 The Apache Software Foundation. *
3  * All rights reserved. *
4  * ------------------------------------------------------------------- *
5  * Licensed under the Apache License, Version 2.0 (the "License"); you *
6  * may not use this file except in compliance with the License. You *
7  * may obtain a copy of the License at: *
8  * *
9  * http://www.apache.org/licenses/LICENSE-2.0 *
10  * *
11  * Unless required by applicable law or agreed to in writing, software *
12  * distributed under the License is distributed on an "AS IS" BASIS, *
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or *
14  * implied. See the License for the specific language governing *
15  * permissions and limitations under the License. *
16  ***********************************************************************/

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.internet.MimeMessage JavaDoc;
24 import java.util.Collection JavaDoc;
25
26 /**
27  * Matches mail with a header set by Fetchpop X-fetched-from <br>
28  * fetchpop sets X-fetched-by to the "name" of the fetchpop fetch task.<br>
29  * This is used to match all mail fetched from a specific pop account.
30  * Once the condition is met the header is stripped from the message to prevent looping if the mail is re-inserted into the spool.
31  *
32  * $Id: FetchedFrom.java,v 1.2.4.3 2004/03/15 03:54:21 noel Exp $
33  */

34
35 public class FetchedFrom extends GenericMatcher {
36     public Collection JavaDoc match(Mail mail) throws javax.mail.MessagingException JavaDoc {
37         MimeMessage JavaDoc message = mail.getMessage();
38         String JavaDoc fetch = message.getHeader("X-fetched-from", null);
39         if (fetch != null && fetch.equals(getCondition())) {
40             mail.getMessage().removeHeader("X-fetched-from");
41             return mail.getRecipients();
42         }
43         return null;
44     }
45 }
46
Popular Tags