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

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

Introduction

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

Prototype

@Override
public void disconnect() throws IOException 

Source Link

Document

Disconnects the client from the server, and sets the state to DISCONNECTED_STATE .

Usage

From source file:examples.messages.java

public static final void main(String[] args) {
    int message;//from   w w  w .  jav  a 2  s .c o m
    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//from   w  w w . j  ava  2 s  . c  om
                .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//w w  w.j a v a  2s . 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]) : 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 w w  . java2s .  c o  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  w w.jav a 2 s  . co  m*/
    }

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

From source file:me.schiz.jmeter.protocol.pop3.sampler.POP3Sampler.java

private SampleResult sampleDisconnect(SampleResult sr) {
    SocketClient soclient = SessionStorage.getInstance().getClient(getSOClient());
    POP3Client client = null;
    if (soclient instanceof POP3Client)
        client = (POP3Client) soclient;//from   w  w w  . j  a  v a2s. c o  m

    String request = "DISCONNECT\n";
    request += "Client : " + getClient() + "\n";
    sr.setRequestHeaders(request);
    if (client == null) {
        clientNotFound(sr);
    } else {
        synchronized (client) {
            sr.sampleStart();
            try {
                client.disconnect();
                if (!client.isConnected()) {
                    sr.setResponseCode(RC_200);
                    sr.setSuccessful(true);
                } else {
                    sr.setResponseCode(RC_500);
                    sr.setSuccessful(false);
                    log.error("can't disconnect client " + getSOClient());
                }
                SessionStorage.getInstance().removeClient(getSOClient());
            } catch (IOException e) {
                sr.setSuccessful(false);
                sr.setResponseData(e.toString().getBytes());
                sr.setResponseCode(e.getClass().getName());
                log.error("client `" + client + "` ", e);
                removeClient();
            }
            sr.sampleEnd();
        }
    }
    return sr;
}

From source file:com.clustercontrol.port.protocol.ReachAddressPOP3.java

/**
 * POP3????????/*from w ww.ja  va  2 s  .c o  m*/
 * 
 * @param addressText
 * @return POP3
 */
@Override
protected boolean isRunning(String addressText) {

    m_message = "";
    m_messageOrg = "";
    m_response = -1;

    boolean isReachable = false;

    try {
        long start = 0; // 
        long end = 0; // 
        boolean retry = true; // ????(true:??false:???)

        StringBuffer bufferOrg = new StringBuffer(); // 
        String result = "";

        InetAddress address = InetAddress.getByName(addressText);

        bufferOrg.append("Monitoring the POP3 Service of " + address.getHostName() + "["
                + address.getHostAddress() + "]:" + m_portNo + ".\n\n");

        POP3Client client = new POP3Client();

        for (int i = 0; i < m_sentCount && retry; i++) {
            try {
                bufferOrg.append(HinemosTime.getDateString() + " Tried to Connect: ");
                client.setDefaultTimeout(m_timeout);

                start = HinemosTime.currentTimeMillis();
                client.connect(address, m_portNo);
                end = HinemosTime.currentTimeMillis();

                m_response = end - start;

                result = client.getReplyString();

                if (m_response > 0) {
                    if (m_response < m_timeout) {
                        result = result + ("\n" + "Response Time = " + m_response + "ms");
                    } else {
                        m_response = m_timeout;
                        result = result + ("\n" + "Response Time = " + m_response + "ms");
                    }
                } else {
                    result = result + ("\n" + "Response Time < 1ms");
                }

                retry = false;
                isReachable = true;

            } catch (SocketException e) {
                result = (e.getMessage() + "[SocketException]");
                retry = true;
                isReachable = false;
            } catch (IOException e) {
                result = (e.getMessage() + "[IOException]");
                retry = true;
                isReachable = false;
            } finally {
                bufferOrg.append(result + "\n");
                if (client.isConnected()) {
                    try {
                        client.disconnect();
                    } catch (IOException e) {
                        m_log.warn("isRunning(): " + "socket disconnect failed: " + e.getMessage(), e);
                    }
                }
            }

            if (i < m_sentCount - 1 && retry) {
                try {
                    Thread.sleep(m_sentInterval);
                } catch (InterruptedException e) {
                    break;
                }
            }
        }

        m_message = result + "(POP3/" + m_portNo + ")";
        m_messageOrg = bufferOrg.toString();
        return isReachable;
    } catch (UnknownHostException e) {
        m_log.debug("isRunning(): " + MessageConstant.MESSAGE_FAIL_TO_EXECUTE_TO_CONNECT.getMessage()
                + e.getMessage());

        m_message = MessageConstant.MESSAGE_FAIL_TO_EXECUTE_TO_CONNECT.getMessage() + " (" + e.getMessage()
                + ")";

        return false;
    }
}

From source file:com.duroty.task.POP3ServiceTask.java

/**
 * DOCUMENT ME!// w  ww  . j a  v  a2  s. co m
 */
private void flush() {
    setInit(true);

    SessionFactory hfactory = null;
    Session hsession = null;
    javax.mail.Session msession = null;

    try {
        hfactory = (SessionFactory) ctx.lookup(hibernateSessionFactory);
        hsession = hfactory.openSession();
        msession = (javax.mail.Session) ctx.lookup(durotyMailFactory);

        String pop3Host = msession.getProperty("mail.pop3.host");

        int port = 0;

        try {
            port = Integer.parseInt(msession.getProperty("mail.pop3.port"));
        } catch (Exception ex) {
            port = 0;
        }

        Query query = hsession.getNamedQuery("users-mail");
        query.setBoolean("active", true);
        query.setString("role", "mail");

        ScrollableResults scroll = query.scroll();

        while (scroll.next()) {
            POP3Client client = new POP3Client();

            try {
                if (port > 0) {
                    client.connect(pop3Host, port);
                } else {
                    client.connect(pop3Host);
                }

                client.setState(POP3Client.AUTHORIZATION_STATE);

                //client.setDefaultTimeout()
                Users user = (Users) scroll.get(0);

                String repositoryName = user.getUseUsername();

                if (client.login(repositoryName, user.getUsePassword())) {
                    POP3MessageInfo[] info = client.listUniqueIdentifiers();

                    if ((info != null) && (info.length > 0)) {
                        for (int i = 0; i < info.length; i++) {
                            if (pool.size() >= poolSize) {
                                break;
                            }

                            Reader reader = client.retrieveMessage(info[i].number);

                            boolean existMessage = existMessageName(hfactory.openSession(), user,
                                    info[i].identifier);

                            String key = info[i].identifier + "--" + repositoryName;

                            if (existMessage) {
                                client.deleteMessage(info[i].number);
                            } else {
                                if (!poolContains(key)) {
                                    addPool(key);

                                    MimeMessage mime = buildMimeMessage(info[i].identifier, reader, user);

                                    if (!isSpam(user, mime)) {
                                        client.deleteMessage(info[i].number);

                                        Mailet mailet = new Mailet(this, info[i].identifier, repositoryName,
                                                mime);

                                        Thread thread = new Thread(mailet, key);
                                        thread.start();
                                    } else {
                                        client.deleteMessage(info[i].number);
                                    }
                                }
                            }

                            Thread.sleep(100);
                        }
                    }
                } else {
                }
            } catch (Exception e) {
            } finally {
                System.gc();

                try {
                    client.logout();
                    client.disconnect();
                } catch (Exception e) {
                }
            }
        }
    } catch (Exception e) {
        System.gc();
        pool.clear();
        DLog.log(DLog.ERROR, this.getClass(), e.getMessage());
    } catch (OutOfMemoryError e) {
        System.gc();
        pool.clear();
        DLog.log(DLog.ERROR, this.getClass(), e.getMessage());
    } catch (Throwable e) {
        System.gc();
        pool.clear();
        DLog.log(DLog.ERROR, this.getClass(), e.getMessage());
    } finally {
        System.gc();

        GeneralOperations.closeHibernateSession(hsession);

        setInit(false);
    }
}

From source file:com.google.gerrit.server.mail.receive.Pop3MailReceiver.java

/**
 * handleEmails will open a connection to the mail server, remove emails where deletion is
 * pending, read new email and close the connection.
 *
 * @param async Determines if processing messages should happen asynchronous.
 */// www  .ja  v  a2s  .  c o m
@Override
public synchronized void handleEmails(boolean async) {
    POP3Client pop3;
    if (mailSettings.encryption != Encryption.NONE) {
        pop3 = new POP3SClient(mailSettings.encryption.name());
    } else {
        pop3 = new POP3Client();
    }
    if (mailSettings.port > 0) {
        pop3.setDefaultPort(mailSettings.port);
    }
    try {
        pop3.connect(mailSettings.host);
    } catch (IOException e) {
        log.error("Could not connect to POP3 email server", e);
        return;
    }
    try {
        try {
            if (!pop3.login(mailSettings.username, mailSettings.password)) {
                log.error("Could not login to POP3 email server. Check username and password");
                return;
            }
            try {
                POP3MessageInfo[] messages = pop3.listMessages();
                if (messages == null) {
                    log.error("Could not retrieve message list via POP3");
                    return;
                }
                log.info("Received " + messages.length + " messages via POP3");
                // Fetch messages
                List<MailMessage> mailMessages = new ArrayList<>();
                for (POP3MessageInfo msginfo : messages) {
                    if (msginfo == null) {
                        // Message was deleted
                        continue;
                    }
                    try (BufferedReader reader = (BufferedReader) pop3.retrieveMessage(msginfo.number)) {
                        if (reader == null) {
                            log.error("Could not retrieve POP3 message header for message {}",
                                    msginfo.identifier);
                            return;
                        }
                        int[] message = fetchMessage(reader);
                        MailMessage mailMessage = RawMailParser.parse(message);
                        // Delete messages where deletion is pending. This requires
                        // knowing the integer message ID of the email. We therefore parse
                        // the message first and extract the Message-ID specified in RFC
                        // 822 and delete the message if deletion is pending.
                        if (pendingDeletion.contains(mailMessage.id())) {
                            if (pop3.deleteMessage(msginfo.number)) {
                                pendingDeletion.remove(mailMessage.id());
                            } else {
                                log.error("Could not delete message " + msginfo.number);
                            }
                        } else {
                            // Process message further
                            mailMessages.add(mailMessage);
                        }
                    } catch (MailParsingException e) {
                        log.error("Could not parse message " + msginfo.number);
                    }
                }
                dispatchMailProcessor(mailMessages, async);
            } finally {
                pop3.logout();
            }
        } finally {
            pop3.disconnect();
        }
    } catch (IOException e) {
        log.error("Error while issuing POP3 command", e);
    }
}

From source file:org.apache.axis.transport.mail.MailSender.java

/**
 * Read from server using POP3// www.j av a 2 s  .  co m
 * @param msgContext
 * @throws Exception
 */
private void readUsingPOP3(String id, MessageContext msgContext) throws Exception {
    // Read the response back from the server
    String pop3Host = msgContext.getStrProp(MailConstants.POP3_HOST);
    String pop3User = msgContext.getStrProp(MailConstants.POP3_USERID);
    String pop3passwd = msgContext.getStrProp(MailConstants.POP3_PASSWORD);

    Reader reader;
    POP3MessageInfo[] messages = null;

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

    for (int i = 0; i < 12; i++) {
        pop3.connect(pop3Host);

        if (!pop3.login(pop3User, pop3passwd)) {
            pop3.disconnect();
            AxisFault fault = new AxisFault("POP3", "( Could not login to server.  Check password. )", null,
                    null);
            throw fault;
        }

        messages = pop3.listMessages();
        if (messages != null && messages.length > 0) {
            StringBuffer buffer = null;
            for (int j = 0; j < messages.length; j++) {
                reader = pop3.retrieveMessage(messages[j].number);
                if (reader == null) {
                    AxisFault fault = new AxisFault("POP3", "( Could not retrieve message header. )", null,
                            null);
                    throw fault;
                }

                buffer = new StringBuffer();
                BufferedReader bufferedReader = new BufferedReader(reader);
                int ch;
                while ((ch = bufferedReader.read()) != -1) {
                    buffer.append((char) ch);
                }
                bufferedReader.close();
                if (buffer.toString().indexOf(id) != -1) {
                    ByteArrayInputStream bais = new ByteArrayInputStream(buffer.toString().getBytes());
                    Properties prop = new Properties();
                    Session session = Session.getDefaultInstance(prop, null);

                    mimeMsg = new MimeMessage(session, bais);
                    pop3.deleteMessage(messages[j].number);
                    break;
                }
                buffer = null;
            }
        }
        pop3.logout();
        pop3.disconnect();
        if (mimeMsg == null) {
            Thread.sleep(5000);
        } else {
            break;
        }
    }

    if (mimeMsg == null) {
        pop3.logout();
        pop3.disconnect();
        AxisFault fault = new AxisFault("POP3", "( Could not retrieve message list. )", null, null);
        throw fault;
    }

    String contentType = mimeMsg.getContentType();
    String contentLocation = mimeMsg.getContentID();
    Message outMsg = new Message(mimeMsg.getInputStream(), false, contentType, contentLocation);

    outMsg.setMessageType(Message.RESPONSE);
    msgContext.setResponseMessage(outMsg);
    if (log.isDebugEnabled()) {
        log.debug("\n" + Messages.getMessage("xmlRecd00"));
        log.debug("-----------------------------------------------");
        log.debug(outMsg.getSOAPPartAsString());
    }
}