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

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

Introduction

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

Prototype

POP3Client

Source Link

Usage

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

@Test
public void testUnknownCommand() throws Exception {
    finishSetUp(pop3Configuration);

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

    pop3Client.sendCommand("unkn");
    assertEquals(0, pop3Client.getState());
    assertEquals("Expected -ERR as result for an unknown command", pop3Client.getReplyString().substring(0, 4),
            "-ERR");
}

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

@Test
public void testUidlCommand() throws Exception {
    finishSetUp(pop3Configuration);

    usersRepository.addUser("foo", "bar");

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

    pop3Client.sendCommand("uidl");
    assertEquals(0, pop3Client.getState());

    pop3Client.login("foo", "bar");

    POP3MessageInfo[] list = pop3Client.listUniqueIdentifiers();
    assertEquals("Found unexpected messages", 0, list.length);

    pop3Client.disconnect();/*w  w  w  .j  av a 2s  .c  o m*/
    MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, "foo", "INBOX");
    MailboxSession session = mailboxManager.login("foo", "bar", LoggerFactory.getLogger("Test"));
    if (!mailboxManager.mailboxExists(mailboxPath, session)) {
        mailboxManager.createMailbox(mailboxPath, session);
    }
    setupTestMails(session, mailboxManager.getMailbox(mailboxPath, session));

    pop3Client.connect("127.0.0.1", pop3Port);
    pop3Client.login("foo", "bar");

    list = pop3Client.listUniqueIdentifiers();
    assertEquals("Expected 2 messages, found: " + list.length, 2, list.length);

    POP3MessageInfo p3i = pop3Client.listUniqueIdentifier(1);
    assertNotNull(p3i);

    mailboxManager.deleteMailbox(mailboxPath, session);

}

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

@Test
public void testMiscCommandsWithWithoutAuth() throws Exception {
    finishSetUp(pop3Configuration);

    usersRepository.addUser("foo", "bar");

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

    pop3Client.sendCommand("noop");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("stat");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("pass");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("auth");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("rset");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.login("foo", "bar");

    POP3MessageInfo[] list = pop3Client.listUniqueIdentifiers();
    assertEquals("Found unexpected messages", 0, list.length);

    pop3Client.sendCommand("noop");
    assertEquals(1, pop3Client.getState());

    pop3Client.sendCommand("pass");
    assertEquals(1, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("auth");
    assertEquals(1, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("user");
    assertEquals(1, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    pop3Client.sendCommand("rset");
    assertEquals(1, pop3Client.getState());

}

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

@Test
public void testKnownUserInboxWithMessages() 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);
    }/*  w ww . j  a va  2  s .  co m*/

    setupTestMails(session, mailboxManager.getMailbox(mailboxPath, session));

    pop3Client.sendCommand("retr", "1");
    assertEquals(0, pop3Client.getState());
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

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

    POP3MessageInfo[] entries = pop3Client.listMessages();

    assertNotNull(entries);
    assertEquals(2, entries.length);
    assertEquals(1, pop3Client.getState());

    Reader r = pop3Client.retrieveMessageTop(entries[0].number, 0);

    assertNotNull(r);

    r.close();

    Reader r2 = pop3Client.retrieveMessage(entries[0].number);
    assertNotNull(r2);
    r2.close();

    // existing message
    boolean deleted = pop3Client.deleteMessage(entries[0].number);
    assertTrue(deleted);

    // already deleted message
    deleted = pop3Client.deleteMessage(entries[0].number);

    // TODO: Understand why this fails...
    assertFalse(deleted);

    // unexisting message
    deleted = pop3Client.deleteMessage(10);
    assertFalse(deleted);

    pop3Client.logout();
    //m_pop3Protocol.disconnect();

    pop3Client.connect("127.0.0.1", pop3Port);

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

    entries = null;

    POP3MessageInfo stats = pop3Client.status();
    assertEquals(1, stats.number);
    assertEquals(5, stats.size);

    entries = pop3Client.listMessages();

    assertNotNull(entries);
    assertEquals(1, entries.length);
    assertEquals(1, pop3Client.getState());

    // top without arguments
    pop3Client.sendCommand("top");
    assertEquals("-ERR", pop3Client.getReplyString().substring(0, 4));

    Reader r3 = pop3Client.retrieveMessageTop(entries[0].number, 0);
    assertNotNull(r3);
    r3.close();
    mailboxManager.deleteMailbox(mailboxPath, session);
}

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

/**
 * Test for JAMES-1202 -  Which shows that UIDL,STAT and LIST all show the same message numbers.
 *///w  w w  .  j a v  a  2 s  . c o  m
@Test
public void testStatUidlList() 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.sendCommand("quit");
    pop3Client.disconnect();

    pop3Client.connect("127.0.0.1", pop3Port);

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

    mailboxManager.deleteMailbox(mailboxPath, session);

}

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  ww . j a  va  2 s  . co m*/
@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.pop3server.POP3ServerTest.java

@Test
public void testIpStored() throws Exception {

    finishSetUp(pop3Configuration);

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

    String pass = "password";
    usersRepository.addUser("foo", pass);

    pop3Client.login("foo", pass);
    assertEquals(1, pop3Client.getState());
    assertTrue(POP3BeforeSMTPHelper.isAuthorized("127.0.0.1"));

}

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

@Test
public void testCapa() throws Exception {
    finishSetUp(pop3Configuration);

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

    String pass = "password";
    usersRepository.addUser("foo", pass);

    assertEquals(POP3Reply.OK, pop3Client.sendCommand("CAPA"));

    pop3Client.getAdditionalReply();/*from   w  ww  .  ja  v a2s .  com*/
    pop3Client.getReplyString();
    List<String> replies = Arrays.asList(pop3Client.getReplyStrings());

    assertTrue("contains USER", replies.contains("USER"));

    pop3Client.login("foo", pass);
    assertEquals(POP3Reply.OK, pop3Client.sendCommand("CAPA"));

    pop3Client.getAdditionalReply();
    pop3Client.getReplyString();
    replies = Arrays.asList(pop3Client.getReplyStrings());
    assertTrue("contains USER", replies.contains("USER"));
    assertTrue("contains UIDL", replies.contains("UIDL"));
    assertTrue("contains TOP", replies.contains("TOP"));

}

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

@Test
public void testDeadlockOnRetr() throws Exception {
    finishSetUp(pop3Configuration);

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

    usersRepository.addUser("foo6", "bar6");
    MailboxSession session = mailboxManager.login("foo6", "bar6", LoggerFactory.getLogger("Test"));

    MailboxPath mailboxPath = MailboxPath.inbox(session);

    mailboxManager.startProcessingRequest(session);
    if (!mailboxManager.mailboxExists(mailboxPath, session)) {
        mailboxManager.createMailbox(mailboxPath, session);
    }/*from w  ww  .j  a  v a 2  s.com*/

    ByteArrayOutputStream out = new ByteArrayOutputStream();
    out.write(content);

    byte[] bigMail = new byte[1024 * 1024 * 10];
    int c = 0;
    for (int i = 0; i < bigMail.length; i++) {

        bigMail[i] = 'X';
        c++;
        if (c == 1000 || i + 3 == bigMail.length) {
            c = 0;
            bigMail[++i] = '\r';
            bigMail[++i] = '\n';
        }
    }
    out.write(bigMail);
    bigMail = null;

    mailboxManager.getMailbox(mailboxPath, session).appendMessage(new ByteArrayInputStream(out.toByteArray()),
            new Date(), session, false, new Flags());
    mailboxManager.startProcessingRequest(session);

    pop3Client.login("foo6", "bar6");
    assertEquals(1, pop3Client.getState());

    POP3MessageInfo[] entries = pop3Client.listMessages();

    assertNotNull(entries);
    assertEquals(1, entries.length);
    assertEquals(1, pop3Client.getState());

    Reader r = pop3Client.retrieveMessage(entries[0].number);

    assertNotNull(r);
    r.close();
    mailboxManager.deleteMailbox(mailboxPath, session);

}

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

protected POP3Client createClient() {
    return new POP3Client();
}