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

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

Introduction

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

Prototype

public POP3SClient(SSLContext context) 

Source Link

Document

Constructor for POP3SClient, using #DEFAULT_PROTOCOL - TLS - and isImplicit = false

Usage

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.
 *//*from ww  w  . j  a va  2  s . 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:com.clustercontrol.port.protocol.ReachAddressPOP3S.java

/**
 * POP3S????????/*from  ww w.  ja  v a2  s  .c o m*/
 * 
 * @param addressText
 * @return POP3S
 */
@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 POP3S Service of " + address.getHostName() + "["
                + address.getHostAddress() + "]:" + m_portNo + ".\n\n");

        POP3SClient client = new POP3SClient(true);

        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 + "(POP3S/" + 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:me.schiz.jmeter.protocol.pop3.sampler.POP3Sampler.java

private SampleResult sampleConnect(SampleResult sr) {
    POP3Client client;//from  ww  w. j a  va 2  s  .c  o  m

    if (getUseSSL()) {
        client = new POP3SClient(true);
        //      } else if(getUseSTARTTLS()) {
        //         client = new POP3SClient(false);
    } else {
        client = new POP3Client();
    }

    StringBuilder requestBuilder = new StringBuilder();
    try {
        //String request = "CONNECT \n";
        requestBuilder.append("CONNECT\n");
        requestBuilder.append("Host : " + getHostname() + ":" + getPort() + "\n");
        requestBuilder.append("Connect Timeout: " + getConnectionTimeout() + "\n");
        requestBuilder.append("Socket Timeout: " + getSoTimeout() + "\n");
        requestBuilder.append("Client : " + getClient() + "\n");
        if (getUseSSL())
            requestBuilder.append("SSL : true\n");
        else
            requestBuilder.append("SSL : false\n");
        //         if(getUseSTARTTLS())    request += "STARTTLS : true\n";
        //         else request += "STARTTLS : false\n";

        sr.setRequestHeaders(requestBuilder.toString());
        sr.sampleStart();
        client.setConnectTimeout(getConnectionTimeout());
        client.connect(getHostname(), getPort());
        if (client.isConnected()) {
            SessionStorage.proto_type protoType = SessionStorage.proto_type.PLAIN;
            if (getUseSSL())
                protoType = SessionStorage.proto_type.SSL;
            //            if(getUseSSL() && !getUseSTARTTLS()) protoType = SessionStorage.proto_type.SSL;
            //            if(!getUseSSL() && getUseSTARTTLS()) protoType = SessionStorage.proto_type.STARTTLS;

            SessionStorage.getInstance().putClient(getSOClient(), client, protoType);
            client.setSoTimeout(getSoTimeout());
            client.setTcpNoDelay(getTcpNoDelay());
            sr.setResponseCode(RC_200);
            sr.setResponseData(client.getReplyString().getBytes());
            sr.setSuccessful(true);
        } else {
            sr.setResponseCode(RC_500);
            sr.setSuccessful(false);
        }
    } catch (SocketException se) {
        sr.setResponseMessage(se.toString());
        sr.setSuccessful(false);
        sr.setResponseCode(se.getClass().getName());
        log.error("client `" + client + "` ", se);
    } catch (IOException ioe) {
        sr.setResponseMessage(ioe.toString());
        sr.setSuccessful(false);
        sr.setResponseCode(ioe.getClass().getName());
        log.error("client `" + client + "` ", ioe);
    }
    sr.sampleEnd();
    return sr;
}

From source file:ob.PO.TaskPO.java

@Override
public void run() {
    setTaskLog("");
    if (thistype == 0) {//
        Date tasktime;/*from  w ww.j a v a 2s . co m*/
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); //????
        try {
            tasktime = sdf.parse(thisstr1 + thisstr2);
            //if(cl.)
        } catch (ParseException ex) {
            setTaskLog("");
            return;
        }
        Date nowtime = new Date();
        if (nowtime.after(tasktime)) {
            setTaskLog("??");
            return;
        }
        while (nowtime.before(tasktime)) {
            long deltaminute = (tasktime.getTime() - nowtime.getTime()) / (1000 * 60); //
            long day = deltaminute / (24 * 60);
            long hour = (deltaminute / 60) % 24;
            long minute = deltaminute % 60;
            setTaskLog("\n" + day + "" + hour + "" + minute
                    + "");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException ex) {
                setTaskLog("");
                return;
            }
            nowtime = new Date();
        }
        if (nowtime.getTime() - tasktime.getTime() > 60 * 1000) {//?
            setTaskLog("?");
            return;
        }
        setTaskLog("");
    } else if (thistype == 1) {//
        int lastmessage_num = -1;
        POP3SClient pop3 = new POP3SClient(true);
        POP3MessageInfo[] messages;
        pop3.setDefaultTimeout(600000);
        while (true) {
            try {
                pop3.connect("pop." + thisstr1.split("@")[1]);//pop. + domain
                if (!pop3.login(thisstr1, AESUtil.Decryptor(thisstr2))) {
                    pop3.disconnect();
                    setTaskLog("?.");
                    return;
                }
                messages = pop3.listMessages();
                if (lastmessage_num < 0) {//?
                    lastmessage_num = messages.length;//?
                    setTaskLog("?" + lastmessage_num);
                } else if (lastmessage_num < messages.length) {//
                    break;
                }
                setTaskLog("?" + messages.length);
                Thread.sleep(10000);
            } catch (Exception ex) {
                setTaskLog("");
                return;
            }
        }
        setTaskLog("");
    } else if (thistype == 2) {//?
        setTaskLog("??");
        while (true) {
            try {
                String Access_token;
                if ((Access_token = Sina.getToken(thisstr1, AESUtil.Decryptor(thisstr2))
                        .getAccessToken()) == null) {
                    setTaskLog("???");
                    return;
                }
                String lasttimeline = GetUserTimeline.getTimeline(Access_token);
                if (lasttimeline == null) {
                } else {
                    if (lasttimeline.contains(thistext)) {//?
                        break;
                    }
                }
                setTaskLog("??");
                Thread.sleep(10000);
            } catch (Exception ex) {
                ex.printStackTrace();
                setTaskLog("??");
                return;
            }
        }
        setTaskLog("???");
    }
    if (thattype == 1) {//?
        setTaskLog("??");
        SimpleEmail email = new SimpleEmail();
        Properties props = new Properties();
        String user, pass;
        try {
            props.load(
                    Thread.currentThread().getContextClassLoader().getResourceAsStream("adminmail.properties"));
            if ((user = (String) props.get("user")) == null || (pass = (String) props.get("pass")) == null) {
                setTaskLog("?");
                return;
            }
            email.setHostName("smtp." + user.split("@")[1]);//?  smtp. + domain
            email.setAuthentication(user, pass);//smtp????  
            email.setSSLOnConnect(true);
            email.addTo(thatusername, "JAVA IFTTT RECEIVER");//  
            email.setFrom(user, "JAVA IFTTT SENDER");//?  
            email.setSubject("JAVA IFTTT SEND EMAIL");//  
            email.setCharset("UTF-8");//??  
            email.setMsg(thattext);//  
            email.send();//??  
        } catch (Exception ex) {
            setTaskLog("??");
            return;
        }
        setTaskLog("????");
    } else if (thattype == 0) {//??
        setTaskLog("???");
        try {
            String Access_token;
            if ((Access_token = Sina.getToken(thatusername, AESUtil.Decryptor(thatpassword))
                    .getAccessToken()) == null) {
                setTaskLog("???");
                return;
            }
            UpdateStatus.Update(Access_token, thattext);
        } catch (Exception ex) {
            ex.printStackTrace();
            setTaskLog("???");
            return;
        }
        setTaskLog("?????");
    }
}