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