Example usage for org.apache.commons.net.pop3 POP3Client retrieveMessageTop

List of usage examples for org.apache.commons.net.pop3 POP3Client retrieveMessageTop

Introduction

In this page you can find the example usage for org.apache.commons.net.pop3 POP3Client retrieveMessageTop.

Prototype

public Reader retrieveMessageTop(int messageId, int numLines) throws IOException 

Source Link

Document

Retrieve only the specified top number of lines of a message from the POP3 server.

Usage

From source file:examples.messages.java

public static final void main(String[] args) {
    int message;// www . j  a v  a  2s .com
    String server, username, password;
    POP3Client pop3;
    Reader reader;
    POP3MessageInfo[] messages;

    if (args.length < 3) {
        System.err.println("Usage: messages <pop3 server hostname> <username> <password>");
        System.exit(1);
    }

    server = args[0];
    username = args[1];
    password = args[2];

    pop3 = new POP3Client();
    // We want to timeout if a response takes longer than 60 seconds
    pop3.setDefaultTimeout(60000);

    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);
        }

        messages = pop3.listMessages();

        if (messages == null) {
            System.err.println("Could not retrieve message list.");
            pop3.disconnect();
            System.exit(1);
        } else if (messages.length == 0) {
            System.out.println("No messages");
            pop3.logout();
            pop3.disconnect();
            System.exit(1);
        }

        for (message = 0; message < messages.length; message++) {
            reader = pop3.retrieveMessageTop(messages[message].number, 0);

            if (reader == null) {
                System.err.println("Could not retrieve message header.");
                pop3.disconnect();
                System.exit(1);
            }

            printMessageInfo(new BufferedReader(reader), messages[message].number);
        }

        pop3.logout();
        pop3.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        System.exit(1);
    }
}

From source file:com.xiangzhurui.util.email.POP3Mail.java

public static void main(String[] args) {
    if (args.length < 3) {
        System.err//w w w  . j  a  va  2  s . c o m
                .println("Usage: POP3Mail <pop3 server hostname> <username> <password> [TLS [true=implicit]]");
        System.exit(1);
    }

    String server = args[0];
    String username = args[1];
    String password = args[2];

    String proto = args.length > 3 ? args[3] : null;
    boolean implicit = args.length > 4 && Boolean.parseBoolean(args[4]);

    POP3Client pop3;

    if (proto != null) {
        System.out.println("Using secure protocol: " + proto);
        pop3 = new POP3SClient(proto, implicit);
    } else {
        pop3 = new POP3Client();
    }
    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);
        }

        POP3MessageInfo[] messages = pop3.listMessages();

        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;
        }

        for (POP3MessageInfo msginfo : messages) {
            BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);

            if (reader == null) {
                System.err.println("Could not retrieve message header.");
                pop3.disconnect();
                System.exit(1);
            }
            printMessageInfo(reader, msginfo.number);
        }

        pop3.logout();
        pop3.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
}

From source file:examples.mail.POP3Mail.java

public static void main(String[] args) {
    if (args.length < 3) {
        System.err// ww w .  j av a 2  s  .  co  m
                .println("Usage: POP3Mail <pop3 server hostname> <username> <password> [TLS [true=implicit]]");
        System.exit(1);
    }

    String server = args[0];
    String username = args[1];
    String password = args[2];

    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();
    }
    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);
        }

        POP3MessageInfo[] messages = pop3.listMessages();

        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;
        }

        for (POP3MessageInfo msginfo : messages) {
            BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);

            if (reader == null) {
                System.err.println("Could not retrieve message header.");
                pop3.disconnect();
                System.exit(1);
            }
            printMessageInfo(reader, msginfo.number);
        }

        pop3.logout();
        pop3.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
}

From source file:POP3Mail.java

public static void main(String[] args) {
    try {/*  w  ww  . j  av a 2  s  .co  m*/
        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:com.discursive.jccook.net.POPExample.java

public void start() throws SocketException, IOException {
    POP3Client client = new POP3Client();
    client.connect("www.discursive.com");
    client.login("tobrien@discursive.com", "******");

    POP3MessageInfo[] messages = client.listMessages();
    for (int i = 0; i < 5; i++) {
        int messageNum = messages[i].number;
        System.out.println("Message number: " + messageNum);
        Reader reader = client.retrieveMessageTop(messageNum, 10);
        System.out.println("Message:\n" + IOUtils.toString(reader));
        IOUtils.closeQuietly(reader);//  w  ww .j a  v a 2 s  . c  o  m
    }

    client.logout();
    client.disconnect();
}

From source file:org.apache.common.net.examples.mail.POP3Mail.java

public static final void main(String[] args) {
    if (args.length < 3) {
        System.err//from w w w  .j av  a2 s .  co m
                .println("Usage: POP3Mail <pop3 server hostname> <username> <password> [TLS [true=implicit]]");
        System.exit(1);
    }

    String server = args[0];
    String username = args[1];
    String password = args[2];

    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();
    }
    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);
        }

        POP3MessageInfo[] messages = pop3.listMessages();

        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;
        }

        for (POP3MessageInfo msginfo : messages) {
            BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);

            if (reader == null) {
                System.err.println("Could not retrieve message header.");
                pop3.disconnect();
                System.exit(1);
            }
            printMessageInfo(reader, msginfo.number);
        }

        pop3.logout();
        pop3.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
}

From source file:org.apache.commons.net.examples.mail.POP3Mail.java

public static void main(String[] args) {
    if (args.length < 3) {
        System.err.println(//from  w w  w  .ja v  a2s  . c  o m
                "Usage: POP3Mail <server[:port]> <username> <password|-|*|VARNAME> [TLS [true=implicit]]");
        System.exit(1);
    }

    String arg0[] = args[0].split(":");
    String server = arg0[0];
    String username = args[1];
    String password = args[2];
    // prompt for the password if necessary
    try {
        password = Utils.getPassword(username, password);
    } catch (IOException e1) {
        System.err.println("Could not retrieve password: " + e1.getMessage());
        return;
    }

    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();
    }

    int port;
    if (arg0.length == 2) {
        port = Integer.parseInt(arg0[1]);
    } else {
        port = pop3.getDefaultPort();
    }
    System.out.println("Connecting to server " + server + " on " + port);

    // 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();
        return;
    }

    try {
        if (!pop3.login(username, password)) {
            System.err.println("Could not login to server.  Check password.");
            pop3.disconnect();
            return;
        }

        POP3MessageInfo status = pop3.status();
        if (status == null) {
            System.err.println("Could not retrieve status.");
            pop3.logout();
            pop3.disconnect();
            return;
        }

        System.out.println("Status: " + status);

        POP3MessageInfo[] messages = pop3.listMessages();

        if (messages == null) {
            System.err.println("Could not retrieve message list.");
            pop3.logout();
            pop3.disconnect();
            return;
        } else if (messages.length == 0) {
            System.out.println("No messages");
            pop3.logout();
            pop3.disconnect();
            return;
        }

        System.out.println("Message count: " + messages.length);

        for (POP3MessageInfo msginfo : messages) {
            BufferedReader reader = (BufferedReader) pop3.retrieveMessageTop(msginfo.number, 0);

            if (reader == null) {
                System.err.println("Could not retrieve message header.");
                pop3.logout();
                pop3.disconnect();
                return;
            }
            printMessageInfo(reader, msginfo.number);
        }

        pop3.logout();
        pop3.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
        return;
    }
}

From source file:org.apache.james.pop3server.POP3ServerTest.java

/**
 * Test for JAMES-1202 - This was failing before as the more then one connection to the same
 * mailbox was not handled the right way
 *///from w w  w  .ja  v a2s .  com
@Test
@Ignore
public void testStatUidlListTwoConnections() throws Exception {
    finishSetUp(pop3Configuration);

    pop3Client = new POP3Client();
    pop3Client.connect("127.0.0.1", pop3Port);

    usersRepository.addUser("foo2", "bar2");

    MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo2", "INBOX");
    MailboxSession session = mailboxManager.login("foo2", "bar2", LoggerFactory.getLogger("Test"));

    if (!mailboxManager.mailboxExists(mailboxPath, session)) {
        mailboxManager.createMailbox(mailboxPath, session);
    }

    int msgCount = 100;
    for (int i = 0; i < msgCount; i++) {
        mailboxManager.getMailbox(mailboxPath, session).appendMessage(
                new ByteArrayInputStream(("Subject: test\r\n\r\n" + i).getBytes()), new Date(), session, true,
                new Flags());
    }

    pop3Client.login("foo2", "bar2");
    assertEquals(1, pop3Client.getState());

    POP3MessageInfo[] listEntries = pop3Client.listMessages();
    POP3MessageInfo[] uidlEntries = pop3Client.listUniqueIdentifiers();
    POP3MessageInfo statInfo = pop3Client.status();
    assertEquals(msgCount, listEntries.length);
    assertEquals(msgCount, uidlEntries.length);
    assertEquals(msgCount, statInfo.number);

    POP3Client m_pop3Protocol2 = new POP3Client();
    m_pop3Protocol2.connect("127.0.0.1", pop3Port);
    m_pop3Protocol2.login("foo2", "bar2");
    assertEquals(1, m_pop3Protocol2.getState());

    POP3MessageInfo[] listEntries2 = m_pop3Protocol2.listMessages();
    POP3MessageInfo[] uidlEntries2 = m_pop3Protocol2.listUniqueIdentifiers();
    POP3MessageInfo statInfo2 = m_pop3Protocol2.status();
    assertEquals(msgCount, listEntries2.length);
    assertEquals(msgCount, uidlEntries2.length);
    assertEquals(msgCount, statInfo2.number);

    pop3Client.deleteMessage(1);
    listEntries = pop3Client.listMessages();
    uidlEntries = pop3Client.listUniqueIdentifiers();
    statInfo = pop3Client.status();
    assertEquals(msgCount - 1, listEntries.length);
    assertEquals(msgCount - 1, uidlEntries.length);
    assertEquals(msgCount - 1, statInfo.number);

    // even after the message was deleted it should get displayed in the
    // second connection
    listEntries2 = m_pop3Protocol2.listMessages();
    uidlEntries2 = m_pop3Protocol2.listUniqueIdentifiers();
    statInfo2 = m_pop3Protocol2.status();
    assertEquals(msgCount, listEntries2.length);
    assertEquals(msgCount, uidlEntries2.length);
    assertEquals(msgCount, statInfo2.number);

    assertTrue(pop3Client.logout());
    pop3Client.disconnect();

    // even after the message was deleted and the session was quit it should
    // get displayed in the second connection
    listEntries2 = m_pop3Protocol2.listMessages();
    uidlEntries2 = m_pop3Protocol2.listUniqueIdentifiers();
    statInfo2 = m_pop3Protocol2.status();
    assertEquals(msgCount, listEntries2.length);
    assertEquals(msgCount, uidlEntries2.length);
    assertEquals(msgCount, statInfo2.number);

    // This both should error and so return null
    assertNull(m_pop3Protocol2.retrieveMessageTop(1, 100));
    assertNull(m_pop3Protocol2.retrieveMessage(1));

    m_pop3Protocol2.sendCommand("quit");
    m_pop3Protocol2.disconnect();

    mailboxManager.deleteMailbox(mailboxPath, session);

}

From source file:org.apache.james.protocols.pop3.AbstractPOP3ServerTest.java

@Test
public void testTop() throws Exception {
    InetSocketAddress address = new InetSocketAddress("127.0.0.1", TestUtils.getFreePort());

    ProtocolServer server = null;/*from  w ww.  j a v a2  s  . c om*/
    try {
        String identifier = "id";
        TestPassCmdHandler factory = new TestPassCmdHandler();

        factory.add("valid", new MockMailbox(identifier, MESSAGE1, MESSAGE2));
        server = createServer(createProtocol(factory), address);
        server.bind();

        POP3Client client = createClient();
        client.connect(address.getAddress().getHostAddress(), address.getPort());

        assertThat(client.login("valid", "valid")).isTrue();
        Reader reader = client.retrieveMessageTop(1, 1000);
        assertThat(reader).isNotNull();
        checkMessage(MESSAGE1, reader);
        reader.close();

        reader = client.retrieveMessageTop(2, 1);
        assertThat(reader).isNotNull();
        checkMessage(MESSAGE2, reader, 1);
        reader.close();

        // does not exist
        reader = client.retrieveMessageTop(10, 100);
        assertThat(reader).isNull();

        // delete and check for the message again, should now be deleted
        assertThat(client.deleteMessage(1)).isTrue();
        reader = client.retrieveMessageTop(1, 1000);
        assertThat(reader).isNull();

        assertThat(client.logout()).isTrue();

    } finally {
        if (server != null) {
            server.unbind();
        }
    }

}

From source file:org.apache.james.protocols.pop3.AbstractPOP3ServerTest.java

@Test
public void testDifferentStates() throws Exception {
    InetSocketAddress address = new InetSocketAddress("127.0.0.1", TestUtils.getFreePort());

    ProtocolServer server = null;/*from   www . j a va 2 s.  c  o m*/
    try {
        String identifier = "id";
        TestPassCmdHandler factory = new TestPassCmdHandler();

        factory.add("valid", new MockMailbox(identifier, MESSAGE1, MESSAGE2));
        server = createServer(createProtocol(factory), address);
        server.bind();

        POP3Client client = createClient();

        client.connect(address.getAddress().getHostAddress(), address.getPort());
        assertThat(client.listMessages()).isNull();
        assertThat(client.listUniqueIdentifiers()).isNull();
        assertThat(client.deleteMessage(1)).isFalse();
        assertThat(client.retrieveMessage(1)).isNull();
        assertThat(client.retrieveMessageTop(1, 10)).isNull();
        assertThat(client.status()).isNull();
        assertThat(client.reset()).isFalse();
        client.logout();

        client.connect(address.getAddress().getHostAddress(), address.getPort());

        assertThat(client.login("valid", "valid")).isTrue();
        assertThat(client.listMessages()).isNotNull();
        assertThat(client.listUniqueIdentifiers()).isNotNull();
        Reader reader = client.retrieveMessage(1);
        assertThat(reader).isNotNull();
        reader.close();
        assertThat(client.status()).isNotNull();
        reader = client.retrieveMessageTop(1, 1);
        assertThat(reader).isNotNull();
        reader.close();
        assertThat(client.deleteMessage(1)).isTrue();
        assertThat(client.reset()).isTrue();

        assertThat(client.logout()).isTrue();

    } finally {
        if (server != null) {
            server.unbind();
        }
    }

}