KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > examples > messages


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

16 package examples;
17
18 import java.io.BufferedReader JavaDoc;
19 import java.io.IOException JavaDoc;
20 import java.io.Reader JavaDoc;
21 import org.apache.commons.net.pop3.POP3Client;
22 import org.apache.commons.net.pop3.POP3MessageInfo;
23
24 /***
25  * This is an example program demonstrating how to use the POP3Client class.
26  * This program connects to a POP3 server and retrieves the message
27  * headers of all the messages, printing the From: and Subject: header
28  * entries for each message.
29  * <p>
30  * Usage: messages <pop3 server hostname> <username> <password>
31  * <p>
32  ***/

33 public final class messages
34 {
35
36     public static final void printMessageInfo(BufferedReader JavaDoc reader, int id)
37     throws IOException JavaDoc
38     {
39         String JavaDoc line, lower, from, subject;
40
41         from = "";
42         subject = "";
43
44         while ((line = reader.readLine()) != null)
45         {
46             lower = line.toLowerCase();
47             if (lower.startsWith("from: "))
48                 from = line.substring(6).trim();
49             else if (lower.startsWith("subject: "))
50                 subject = line.substring(9).trim();
51         }
52
53         System.out.println(Integer.toString(id) + " From: " + from +
54                            " Subject: " + subject);
55     }
56
57     public static final void main(String JavaDoc[] args)
58     {
59         int message;
60         String JavaDoc server, username, password;
61         POP3Client pop3;
62         Reader JavaDoc reader;
63         POP3MessageInfo[] messages;
64
65         if (args.length < 3)
66         {
67             System.err.println(
68                 "Usage: messages <pop3 server hostname> <username> <password>");
69             System.exit(1);
70         }
71
72         server = args[0];
73         username = args[1];
74         password = args[2];
75
76         pop3 = new POP3Client();
77         // We want to timeout if a response takes longer than 60 seconds
78
pop3.setDefaultTimeout(60000);
79
80         try
81         {
82             pop3.connect(server);
83         }
84         catch (IOException JavaDoc e)
85         {
86             System.err.println("Could not connect to server.");
87             e.printStackTrace();
88             System.exit(1);
89         }
90
91         try
92         {
93             if (!pop3.login(username, password))
94             {
95                 System.err.println("Could not login to server. Check password.");
96                 pop3.disconnect();
97                 System.exit(1);
98             }
99
100             messages = pop3.listMessages();
101
102             if (messages == null)
103             {
104                 System.err.println("Could not retrieve message list.");
105                 pop3.disconnect();
106                 System.exit(1);
107             }
108             else if (messages.length == 0)
109             {
110                 System.out.println("No messages");
111                 pop3.logout();
112                 pop3.disconnect();
113                 System.exit(1);
114             }
115
116             for (message = 0; message < messages.length; message++)
117             {
118                 reader = pop3.retrieveMessageTop(messages[message].number, 0);
119
120                 if (reader == null)
121                 {
122                     System.err.println("Could not retrieve message header.");
123                     pop3.disconnect();
124                     System.exit(1);
125                 }
126
127                 printMessageInfo(new BufferedReader JavaDoc(reader), messages[message].number);
128             }
129
130             pop3.logout();
131             pop3.disconnect();
132         }
133         catch (IOException JavaDoc e)
134         {
135             e.printStackTrace();
136             System.exit(1);
137         }
138     }
139 }
140
141
Popular Tags