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

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

Introduction

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

Prototype

public boolean logout() throws IOException 

Source Link

Document

Logout of the POP3 server.

Usage

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  ww  w.  j  a  v a  2s.  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.protocols.pop3.AbstractPOP3ServerTest.java

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

    ProtocolServer server = null;/*  ww w.  j a v a2  s  .  com*/
    try {
        server = createServer(createProtocol(new TestPassCmdHandler()), address);
        server.bind();

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

        assertThat(client.login("invalid", "invalid")).isFalse();
        assertThat(client.logout()).isTrue();

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

}

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

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

    ProtocolServer server = null;//ww  w  . j av a  2s.co  m
    try {
        String identifier = "id";
        TestPassCmdHandler handler = new TestPassCmdHandler();

        handler.add("valid", new MockMailbox(identifier));
        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(0);

        info = client.listUniqueIdentifiers();
        assertThat(info.length).isEqualTo(0);
        assertThat(client.logout()).isTrue();

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

}

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;/*from   w w  w . j a va 2 s  .  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();
        }
    }

}

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

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

    ProtocolServer server = null;//from   w  ww . j av  a  2 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.retrieveMessage(1);
        assertThat(reader).isNotNull();
        checkMessage(MESSAGE1, reader);
        reader.close();

        // does not exist
        reader = client.retrieveMessage(10);
        assertThat(reader).isNull();

        // delete and check for the message again, should now be deleted
        assertThat(client.deleteMessage(1)).isTrue();
        reader = client.retrieveMessage(1);
        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 testTop() throws Exception {
    InetSocketAddress address = new InetSocketAddress("127.0.0.1", TestUtils.getFreePort());

    ProtocolServer server = null;/*from  ww  w.j a v a2s.co  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.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 testDele() throws Exception {
    InetSocketAddress address = new InetSocketAddress("127.0.0.1", TestUtils.getFreePort());

    ProtocolServer server = null;//w  w  w  .j  a  v a  2s  .  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();
        POP3MessageInfo[] info = client.listMessages();
        assertThat(info.length).isEqualTo(2);

        assertThat(client.deleteMessage(1)).isTrue();
        info = client.listMessages();
        assertThat(info.length).isEqualTo(1);

        assertThat(client.deleteMessage(1)).isFalse();
        info = client.listMessages();
        assertThat(info.length).isEqualTo(1);

        assertThat(client.deleteMessage(2)).isTrue();
        info = client.listMessages();
        assertThat(info.length).isEqualTo(0);

        // logout so the messages get expunged
        assertThat(client.logout()).isTrue();

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

        assertThat(client.login("valid", "valid")).isTrue();
        info = client.listMessages();
        assertThat(info.length).isEqualTo(0);

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

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

}

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

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

    ProtocolServer server = null;//from   www.j  a v a  2s.  com
    try {
        String identifier = "id";
        TestPassCmdHandler factory = new TestPassCmdHandler();

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

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

        assertThat(client.login("valid", "valid")).isTrue();
        assertThat(client.noop()).isTrue();
        assertThat(client.logout()).isTrue();

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

}

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

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

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

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

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

        assertThat(client.login("valid", "valid")).isTrue();
        assertThat(client.listMessages().length).isEqualTo(1);
        assertThat(client.deleteMessage(1)).isTrue();
        assertThat(client.listMessages().length).isEqualTo(0);

        // call RSET. After this the deleted mark should be removed again
        assertThat(client.reset()).isTrue();
        assertThat(client.listMessages().length).isEqualTo(1);

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

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

}

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

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

    ProtocolServer server = null;/*  w  w w  .ja  v a2s  . co  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.login("valid", "valid")).isTrue();
        POP3MessageInfo info = client.status();
        assertThat(info.size).isEqualTo((int) (MESSAGE1.meta.getSize() + MESSAGE2.meta.getSize()));
        assertThat(info.number).isEqualTo(2);
        assertThat(client.logout()).isTrue();

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

}