List of usage examples for org.apache.commons.net.smtp SMTPClient getReplyString
public String getReplyString()
From source file:ca.rmen.android.networkmonitor.app.email.Emailer.java
private static void checkReply(SMTPClient sc) throws IOException { if (SMTPReply.isNegativeTransient(sc.getReplyCode())) { throw new RuntimeException("Transient SMTP error " + sc.getReply() + sc.getReplyString()); } else if (SMTPReply.isNegativePermanent(sc.getReplyCode())) { throw new RuntimeException("Permanent SMTP error " + sc.getReply() + sc.getReplyString()); }//from www . j a va 2 s . c o m }
From source file:com.clustercontrol.port.protocol.ReachAddressSMTP.java
/** * SMTP????????/* w w w . jav a 2 s .c o m*/ * * @param addressText * @return SMTP */ @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 SMTP Service of " + address.getHostName() + "[" + address.getHostAddress() + "]:" + m_portNo + ".\n\n"); SMTPClient client = new SMTPClient(); 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 + "(SMTP/" + 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:me.schiz.jmeter.protocol.smtp.sampler.SMTPSampler.java
private SampleResult sampleNoop(SampleResult sr) { SocketClient soclient = SessionStorage.getInstance().getClient(getSOClient()); SMTPClient client = null; if (soclient instanceof SMTPClient) client = (SMTPClient) soclient;/*from w w w . j a v a 2 s. c o m*/ String request = "NOOP\n"; request += "Client : " + getClient() + "\n"; sr.setRequestHeaders(request); if (client == null) { clientNotFound(sr); } else { synchronized (client) { sr.sampleStart(); try { sr.setSuccessful(client.sendNoOp()); sr.setResponseCode(String.valueOf(client.getReplyCode())); sr.setResponseData(client.getReplyString().getBytes()); setSuccessfulByResponseCode(sr, client.getReplyCode()); } catch (IOException e) { sr.setSuccessful(false); sr.setResponseData(e.toString().getBytes()); sr.setResponseCode(e.getClass().getName()); log.error("client `" + client + "` io exception", e); removeClient(); } sr.sampleEnd(); } } return sr; }
From source file:emailchecker.CheckEmailObj.java
public boolean checkEmail(String email) { if (!email.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+")) { System.err.println("Format error"); return false; }/*from ww w. jav a2 s .c o m*/ // String log = ""; String host = ""; String hostName = email.split("@")[1]; Record[] result = null; SMTPClient client = new SMTPClient(); try { // MX Lookup lookup = new Lookup(hostName, Type.MX); lookup.run(); if (lookup.getResult() != Lookup.SUCCESSFUL) { log += "?MX\n"; return false; } else { result = lookup.getAnswers(); } // ? for (int i = 0; i < result.length; i++) { host = result[i].getAdditionalName().toString(); client.connect(host); if (!SMTPReply.isPositiveCompletion(client.getReplyCode())) { client.disconnect(); continue; } else { log += "MX record about " + hostName + " exists.\n"; log += "Connection succeeded to " + host + "\n"; break; } } log += client.getReplyString(); // HELO cyou-inc.com client.login("cyou-inc.com"); log += ">HELO cyou-inc.com\n"; log += "=" + client.getReplyString(); // MAIL FROM: <zhaojinglun@cyou-inc.com> client.setSender("zhaojinglun@cyou-inc.com"); log += ">MAIL FROM: <zhaojinglun@cyou-inc.com>\n"; log += "=" + client.getReplyString(); // RCPT TO: <$email> client.addRecipient(email); log += ">RCPT TO: <" + email + ">\n"; log += "=" + client.getReplyString() + "\n\n"; if (250 == client.getReplyCode()) { return true; } } catch (Exception e) { e.printStackTrace(); } finally { try { client.disconnect(); } catch (IOException e) { } // ? // System.err.println(log); } return false; }
From source file:com.google.gerrit.server.mail.SmtpEmailSender.java
@Override public void send(final Address from, Collection<Address> rcpt, final Map<String, EmailHeader> callerHeaders, final String body) throws EmailException { if (!isEnabled()) { throw new EmailException("Sending email is disabled"); }// ww w. j a va2s. c om final Map<String, EmailHeader> hdrs = new LinkedHashMap<String, EmailHeader>(callerHeaders); setMissingHeader(hdrs, "MIME-Version", "1.0"); setMissingHeader(hdrs, "Content-Type", "text/plain; charset=UTF-8"); setMissingHeader(hdrs, "Content-Transfer-Encoding", "8bit"); setMissingHeader(hdrs, "Content-Disposition", "inline"); setMissingHeader(hdrs, "User-Agent", "Gerrit/" + Version.getVersion()); if (importance != null) { setMissingHeader(hdrs, "Importance", importance); } if (expiryDays > 0) { Date expiry = new Date(System.currentTimeMillis() + expiryDays * 24 * 60 * 60 * 1000); setMissingHeader(hdrs, "Expiry-Date", new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").format(expiry)); } StringBuffer rejected = new StringBuffer(); try { final SMTPClient client = open(); try { if (!client.setSender(from.email)) { throw new EmailException("Server " + smtpHost + " rejected from address " + from.email); } /* Do not prevent the email from being sent to "good" users simply * because some users get rejected. If not, a single rejected * project watcher could prevent email for most actions on a project * from being sent to any user! Instead, queue up the errors, and * throw an exception after sending the email to get the rejected * error(s) logged. */ for (Address addr : rcpt) { if (!client.addRecipient(addr.email)) { String error = client.getReplyString(); rejected.append("Server " + smtpHost + " rejected recipient " + addr + ": " + error); } } Writer w = client.sendMessageData(); if (w == null) { /* Include rejected recipient error messages here to not lose that * information. That piece of the puzzle is vital if zero recipients * are accepted and the server consequently rejects the DATA command. */ throw new EmailException( rejected + "Server " + smtpHost + " rejected DATA command: " + client.getReplyString()); } w = new BufferedWriter(w); for (Map.Entry<String, EmailHeader> h : hdrs.entrySet()) { if (!h.getValue().isEmpty()) { w.write(h.getKey()); w.write(": "); h.getValue().write(w); w.write("\r\n"); } } w.write("\r\n"); w.write(body); w.flush(); w.close(); if (!client.completePendingCommand()) { throw new EmailException( "Server " + smtpHost + " rejected message body: " + client.getReplyString()); } client.logout(); if (rejected.length() > 0) { throw new EmailException(rejected.toString()); } } finally { client.disconnect(); } } catch (IOException e) { throw new EmailException("Cannot send outgoing email", e); } }
From source file:me.schiz.jmeter.protocol.smtp.sampler.SMTPSampler.java
private SampleResult sampleReset(SampleResult sr) { SocketClient soclient = SessionStorage.getInstance().getClient(getSOClient()); SMTPClient client = null; if (soclient instanceof SMTPClient) client = (SMTPClient) soclient;//from w ww.java 2s. c o m String request = "COMMAND\n"; request += "Client : " + getClient() + "\n"; sr.setRequestHeaders(request); if (client == null) { sr.setResponseCode("404"); sr.setResponseData(("Client `" + getClient() + "` not found").getBytes()); sr.setSuccessful(false); return sr; } else { synchronized (client) { sr.sampleStart(); try { sr.setSuccessful(client.reset()); sr.setResponseCode(String.valueOf(client.getReplyCode())); sr.setResponseData(client.getReplyString().getBytes()); setSuccessfulByResponseCode(sr, client.getReplyCode()); } 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.google.gerrit.server.mail.send.SmtpEmailSender.java
@Override public void send(final Address from, Collection<Address> rcpt, final Map<String, EmailHeader> callerHeaders, String textBody, @Nullable String htmlBody) throws EmailException { if (!isEnabled()) { throw new EmailException("Sending email is disabled"); }/*w ww. j av a 2 s.c o m*/ final Map<String, EmailHeader> hdrs = new LinkedHashMap<>(callerHeaders); setMissingHeader(hdrs, "MIME-Version", "1.0"); setMissingHeader(hdrs, "Content-Transfer-Encoding", "8bit"); setMissingHeader(hdrs, "Content-Disposition", "inline"); setMissingHeader(hdrs, "User-Agent", "Gerrit/" + Version.getVersion()); if (importance != null) { setMissingHeader(hdrs, "Importance", importance); } if (expiryDays > 0) { Date expiry = new Date(TimeUtil.nowMs() + expiryDays * 24 * 60 * 60 * 1000L); setMissingHeader(hdrs, "Expiry-Date", new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z").format(expiry)); } String encodedBody; if (htmlBody == null) { setMissingHeader(hdrs, "Content-Type", "text/plain; charset=UTF-8"); encodedBody = textBody; } else { String boundary = generateMultipartBoundary(textBody, htmlBody); setMissingHeader(hdrs, "Content-Type", "multipart/alternative; boundary=\"" + boundary + "\"; charset=UTF-8"); encodedBody = buildMultipartBody(boundary, textBody, htmlBody); } StringBuffer rejected = new StringBuffer(); try { final SMTPClient client = open(); try { if (!client.setSender(from.getEmail())) { throw new EmailException("Server " + smtpHost + " rejected from address " + from.getEmail()); } /* Do not prevent the email from being sent to "good" users simply * because some users get rejected. If not, a single rejected * project watcher could prevent email for most actions on a project * from being sent to any user! Instead, queue up the errors, and * throw an exception after sending the email to get the rejected * error(s) logged. */ for (Address addr : rcpt) { if (!client.addRecipient(addr.getEmail())) { String error = client.getReplyString(); rejected.append("Server ").append(smtpHost).append(" rejected recipient ").append(addr) .append(": ").append(error); } } Writer messageDataWriter = client.sendMessageData(); if (messageDataWriter == null) { /* Include rejected recipient error messages here to not lose that * information. That piece of the puzzle is vital if zero recipients * are accepted and the server consequently rejects the DATA command. */ throw new EmailException( rejected + "Server " + smtpHost + " rejected DATA command: " + client.getReplyString()); } try (Writer w = new BufferedWriter(messageDataWriter)) { for (Map.Entry<String, EmailHeader> h : hdrs.entrySet()) { if (!h.getValue().isEmpty()) { w.write(h.getKey()); w.write(": "); h.getValue().write(w); w.write("\r\n"); } } w.write("\r\n"); w.write(encodedBody); w.flush(); } if (!client.completePendingCommand()) { throw new EmailException( "Server " + smtpHost + " rejected message body: " + client.getReplyString()); } client.logout(); if (rejected.length() > 0) { throw new EmailException(rejected.toString()); } } finally { client.disconnect(); } } catch (IOException e) { throw new EmailException("Cannot send outgoing email", e); } }
From source file:me.schiz.jmeter.protocol.smtp.sampler.SMTPSampler.java
private SampleResult sampleCommand(SampleResult sr) { SocketClient soclient = SessionStorage.getInstance().getClient(getSOClient()); SMTPClient client = null; int responseCode = 0; if (soclient instanceof SMTPClient) client = (SMTPClient) soclient;/* w w w . jav a 2 s.co m*/ String request = "COMMAND\n"; request += "Client : " + getClient() + "\n"; request += "Command : " + getCommand() + "\n"; sr.setRequestHeaders(request); if (client == null) { sr.setResponseCode("404"); sr.setResponseData(("Client `" + getClient() + "` not found").getBytes()); sr.setSuccessful(false); return sr; } else { synchronized (client) { sr.sampleStart(); try { responseCode = client.sendCommand(getCommand()); sr.setResponseCode(String.valueOf(responseCode)); sr.setSuccessful(SMTPReply.isPositiveIntermediate(responseCode)); String response = client.getReplyString(); setSuccessfulByResponseCode(sr, client.getReplyCode()); if (SessionStorage.getInstance() .getClientType(getSOClient()) == SessionStorage.proto_type.STARTTLS) { String command; if (getCommand().indexOf(' ') != -1) command = getCommand().substring(0, getCommand().indexOf(' ')); else command = getCommand(); if ((command.equalsIgnoreCase("lhlo") || command.equalsIgnoreCase("ehlo") || command.equalsIgnoreCase("helo")) && getUseSTARTTLS() && client instanceof SMTPSClient) { SMTPSClient sclient = (SMTPSClient) client; if (sclient.execTLS() == false) { sr.setSuccessful(false); sr.setResponseCode("403"); ; response += sclient.getReplyString(); log.error("client `" + client + "` STARTTLS failed"); removeClient(); } else { response += "\nSTARTTLS OK"; } } } sr.setResponseData(response.getBytes()); } 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:ProtocolRunner.java
private static void handleSMTP( SMTPClient client, ProtocolRunner runner, //from w ww . jav a2 s . com String commandString) throws IOException { if(commandString == null) { // means just connected // check if the server response was valid if(!SMTPReply.isPositiveCompletion(client.getReplyCode())) { runner.handleDisconnect(); return; } } else { // need to handle a command client.sendCommand(commandString); } runner.getTCPServerResponse().append(client.getReplyString()); }
From source file:me.schiz.jmeter.protocol.smtp.sampler.SMTPSampler.java
private SampleResult sampleConnect(SampleResult sr) { SMTPClient client; if (getUseSSL()) { client = new SMTPSClient(true); } else if (getUseSTARTTLS()) { client = new SMTPSClient(false); } else {//from w w w . j a v a 2 s . com client = new SMTPClient(); } try { String request = "CONNECT \n"; request += "Host : " + getHostname() + ":" + getPort() + "\n"; request += "Default Timeout : " + getDefaultTimeout() + "\n"; request += "Connect Timeout : " + getConnectionTimeout() + "\n"; request += "So Timeout : " + getSoTimeout() + "\n"; request += "Client : " + getClient() + "\n"; if (getUseSSL()) request += "SSL : true\n"; else request += "SSL : false\n"; if (getUseSTARTTLS()) request += "STARTTLS : true\n"; else request += "STARTTLS : false\n"; sr.setRequestHeaders(request); sr.sampleStart(); client.setDefaultTimeout(getDefaultTimeout()); client.setConnectTimeout(getConnectionTimeout()); client.connect(getHostname(), getPort()); if (client.isConnected()) { SessionStorage.proto_type protoType = SessionStorage.proto_type.PLAIN; 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(String.valueOf(client.getReplyCode())); sr.setResponseData(client.getReplyString().getBytes()); setSuccessfulByResponseCode(sr, client.getReplyCode()); } } 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; }