KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > actions > email > List


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.actions.email;
27
28 import javax.mail.FetchProfile JavaDoc;
29 import javax.mail.Folder JavaDoc;
30 import javax.mail.MessagingException JavaDoc;
31 import java.util.ArrayList JavaDoc;
32
33 public class List
34     extends MailSupport
35 {
36     // Types ---------------------------------------------------------
37

38
39     // Attributes ----------------------------------------------------
40
java.util.List JavaDoc messages;
41     Folder JavaDoc folder;
42
43     // getters
44
public java.util.List JavaDoc getMessages() { return messages; }
45     public Folder JavaDoc getFolder() { return folder; }
46
47     // setters
48

49     // Implementation
50
public String JavaDoc doExecute()
51     {
52         try
53         {
54             // read stuff
55
folder = mailStore.getDefaultFolder();
56             folder = folder.getFolder("INBOX");
57             try
58             {
59                 folder.open(Folder.READ_WRITE);
60             }
61             catch (MessagingException JavaDoc ex)
62             {
63                 folder.open(Folder.READ_ONLY);
64                 System.err.println("net.killingar.actions.email.List: opened folder as read only");
65             }
66             int totalMessages = folder.getMessageCount();
67             int newMessages = folder.getNewMessageCount();
68
69             javax.mail.Message JavaDoc[] msgs = folder.getMessages();
70             // Use a suitable FetchProfile
71
FetchProfile JavaDoc fp = new FetchProfile JavaDoc();
72             fp.add(FetchProfile.Item.ENVELOPE);
73             fp.add(FetchProfile.Item.FLAGS);
74             fp.add("X-Mailer");
75             folder.fetch(msgs, fp);
76
77             messages = new ArrayList JavaDoc();
78             for (int i = 0; i < msgs.length; i++)
79                 messages.add(new Mail(msgs[i]));
80         }
81         catch (Exception JavaDoc e)
82         {
83             addErrorMessage("viewing mailbox failed, exception thrown ("+e.toString()+")");
84             e.printStackTrace();
85
86             return ERROR;
87         }
88
89         return SUCCESS;
90     }
91
92     public void cleanup()
93     {
94     try
95         {
96             folder.close(true);
97             super.cleanup();
98         }
99         catch (Exception JavaDoc e){} // ignore all errors
100
}
101 }
102
Popular Tags