List of usage examples for org.apache.commons.net.pop3 POP3Client listMessage
public POP3MessageInfo listMessage(int messageId) throws IOException
From source file:POP3Mail.java
public static void main(String[] args) { try {//from w w w .j av a 2 s . c om LogManager.getLogManager().readConfiguration(new FileInputStream("logging.properties")); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String server = null; String username = null; String password = null; if (new File("mail.properties").exists()) { Properties properties = new Properties(); try { properties.load(new FileInputStream(new File("mail.properties"))); server = properties.getProperty("server"); username = properties.getProperty("username"); password = properties.getProperty("password"); ArrayList<String> list = new ArrayList<String>( Arrays.asList(new String[] { server, username, password })); list.addAll(Arrays.asList(args)); args = list.toArray(new String[list.size()]); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (args.length < 3) { System.err .println("Usage: POP3Mail <pop3 server hostname> <username> <password> [TLS [true=implicit]]"); System.exit(1); } server = args[0]; username = args[1]; password = args[2]; String proto = null; int messageid = -1; boolean implicit = false; for (int i = 3; i < args.length; ++i) { if (args[i].equals("-m")) { i += 1; messageid = Integer.parseInt(args[i]); } } // String proto = args.length > 3 ? args[3] : null; // boolean implicit = args.length > 4 ? Boolean.parseBoolean(args[4]) // : false; POP3Client pop3; if (proto != null) { System.out.println("Using secure protocol: " + proto); pop3 = new POP3SClient(proto, implicit); } else { pop3 = new POP3Client(); } pop3.setDefaultPort(110); System.out.println("Connecting to server " + server + " on " + pop3.getDefaultPort()); // We want to timeout if a response takes longer than 60 seconds pop3.setDefaultTimeout(60000); // suppress login details pop3.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true)); try { pop3.connect(server); } catch (IOException e) { System.err.println("Could not connect to server."); e.printStackTrace(); System.exit(1); } try { if (!pop3.login(username, password)) { System.err.println("Could not login to server. Check password."); pop3.disconnect(); System.exit(1); } PrintWriter printWriter = new PrintWriter(new FileWriter("messages.csv"), true); POP3MessageInfo[] messages = null; POP3MessageInfo[] identifiers = null; if (messageid == -1) { messages = pop3.listMessages(); identifiers = pop3.listUniqueIdentifiers(); } else { messages = new POP3MessageInfo[] { pop3.listMessage(messageid) }; } if (messages == null) { System.err.println("Could not retrieve message list."); pop3.disconnect(); return; } else if (messages.length == 0) { System.out.println("No messages"); pop3.logout(); pop3.disconnect(); return; } new File("../json").mkdirs(); int count = 0; for (POP3MessageInfo msginfo : messages) { if (msginfo.number != identifiers[count].number) { throw new RuntimeException(); } msginfo.identifier = identifiers[count].identifier; BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0); ++count; if (count % 100 == 0) { logger.finest(String.format("%d %s", msginfo.number, msginfo.identifier)); } System.out.println(String.format("%d %s", msginfo.number, msginfo.identifier)); if (reader == null) { System.err.println("Could not retrieve message header."); pop3.disconnect(); System.exit(1); } if (printMessageInfo(reader, msginfo.number, printWriter)) { } } printWriter.close(); pop3.logout(); pop3.disconnect(); } catch (IOException e) { e.printStackTrace(); return; } }
From source file:org.apache.james.protocols.pop3.AbstractPOP3ServerTest.java
@Test public void testInboxWithMessages() throws Exception { InetSocketAddress address = new InetSocketAddress("127.0.0.1", TestUtils.getFreePort()); ProtocolServer server = null;// w w w.ja va 2s. c om try { String identifier = "id"; TestPassCmdHandler handler = new TestPassCmdHandler(); handler.add("valid", new MockMailbox(identifier, MESSAGE1, MESSAGE2)); server = createServer(createProtocol(handler), address); server.bind(); POP3Client client = createClient(); client.connect(address.getAddress().getHostAddress(), address.getPort()); assertThat(client.login("valid", "valid")).isTrue(); POP3MessageInfo[] info = client.listMessages(); assertThat(info.length).isEqualTo(2); assertThat(info[0].size).isEqualTo((int) MESSAGE1.meta.getSize()); assertThat(info[1].size).isEqualTo((int) MESSAGE2.meta.getSize()); assertThat(info[0].number).isEqualTo(1); assertThat(info[1].number).isEqualTo(2); POP3MessageInfo mInfo = client.listMessage(1); assertThat(mInfo.size).isEqualTo((int) MESSAGE1.meta.getSize()); assertThat(mInfo.number).isEqualTo(1); // try to retrieve message that not exist mInfo = client.listMessage(10); assertThat(mInfo).isNull(); info = client.listUniqueIdentifiers(); assertThat(info.length).isEqualTo(2); assertThat(info[0].identifier).isEqualTo(identifier + "-" + MESSAGE1.meta.getUid()); assertThat(info[1].identifier).isEqualTo(identifier + "-" + MESSAGE2.meta.getUid()); assertThat(info[0].number).isEqualTo(1); assertThat(info[1].number).isEqualTo(2); mInfo = client.listUniqueIdentifier(1); assertThat(mInfo.identifier).isEqualTo(identifier + "-" + MESSAGE1.meta.getUid()); assertThat(mInfo.number).isEqualTo(1); // try to retrieve message that not exist mInfo = client.listUniqueIdentifier(10); assertThat(mInfo).isNull(); assertThat(client.logout()).isTrue(); } finally { if (server != null) { server.unbind(); } } }