Example usage for org.apache.commons.net.smtp SMTPSClient getReplyCode

List of usage examples for org.apache.commons.net.smtp SMTPSClient getReplyCode

Introduction

In this page you can find the example usage for org.apache.commons.net.smtp SMTPSClient getReplyCode.

Prototype

public int getReplyCode() 

Source Link

Document

Returns the integer value of the reply code of the last SMTP reply.

Usage

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

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

        SMTPSClient client = new SMTPSClient(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();

                int reply = client.getReplyCode();

                if (SMTPReply.isPositiveCompletion(reply)) {
                    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;
                } else {
                    retry = false;
                    isReachable = false;
                }

            } 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 + "(SMTPS/" + m_portNo + ")";
        m_messageOrg = bufferOrg.toString();
        return isReachable;
    } catch (UnknownHostException e) {
        m_log.warn("isRunning(): " + MessageConstant.MESSAGE_FAIL_TO_EXECUTE_TO_CONNECT.getMessage()
                + e.getMessage(), e);

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

        return false;
    }
}

From source file:org.apache.james.protocols.smtp.AbstractStartTlsSMTPServerTest.java

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

    ProtocolServer server = null;/*w  ww .j  a  va  2  s .  c om*/
    try {
        server = createServer(createProtocol(new ProtocolHandler[0]), address,
                Encryption.createStartTls(BogusSslContextFactory.getServerContext()));
        server.bind();

        SMTPSClient client = createClient();
        client.connect(address.getAddress().getHostAddress(), address.getPort());
        assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));

        client.sendCommand("EHLO localhost");
        assertTrue(SMTPReply.isPositiveCompletion(client.getReplyCode()));

        boolean startTLSAnnounced = false;
        for (String reply : client.getReplyStrings()) {
            if (reply.toUpperCase(Locale.UK).endsWith("STARTTLS")) {
                startTLSAnnounced = true;
                break;
            }
        }
        assertTrue(startTLSAnnounced);

        assertTrue(client.execTLS());

        // TODO: Add back once commons-net 3.1.0 was released.
        // See: NET-421
        //
        //client.quit();
        //assertTrue("Reply="+ client.getReplyString(), SMTPReply.isPositiveCompletion(client.getReplyCode()));

        client.disconnect();

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

}

From source file:repl.simple.mathematica.ErrorReporter.java

/**
 * Sends the information to mail server.
 *
 * @param model of bug report// ww w  .  j  av a  2  s .c om
 */
private static synchronized void sendBugData(BugReportModel model) {
    String subject;
    Writer writer;
    SimpleSMTPHeader header;
    SMTPSClient client;
    //
    subject = MathREPLBundle.message("reportSubject");
    try {
        header = new SimpleSMTPHeader(model.mailuser, model.to, subject);

        client = new SMTPSClient();
        client.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));

        client.connect(model.mailserver);
        if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) {
            client.disconnect();
            throw new ConnectException(MathREPLBundle.message("smtpFailure"));
        }
        client.helo("localhost");
        if (client.execTLS()) {

            client.login();
            client.setSender(model.mailuser);
            client.addRecipient(model.to);

            writer = client.sendMessageData();

            if (writer != null) {
                writer.write(header.toString());
                writer.write(model.message);
                writer.close();
                client.completePendingCommand();
            }
        }
        client.logout();
        client.disconnect();
    } catch (IOException e) {
        e.printStackTrace();
    }
}