I want to write a program to send email, using smtp protcol,and each time the co
ID: 3617895 • Letter: I
Question
I want to write a program to send email, using smtp protcol,and each time the compiler give me error on this line sendCommand("HELP".concat(localhost),250); and the program give me something like it's not even exist inthe library, I am using NetBeans Please I need Help I want to write a program to send email, using smtp protcol,and each time the compiler give me error on this line sendCommand("HELP".concat(localhost),250); and the program give me something like it's not even exist inthe library, I am using NetBeans Please I need HelpExplanation / Answer
x.Xom.sun.xml.internal.messaging.saaj.soap.Envelope; import java.net.*; import java.io.*; import java.util.*; /** * Open an SMTP connection to a remote machine and send one mail. */ public class SMTPConnection { /* The socket to the server */ private Socket connection; /* Streams for reading and writing the socket */ private BufferedReader fromServer; private DataOutputStream toServer; private static final int SMTP_PORT = 25; private static final String CRLF = " "; /* Are we connected? Used in close() to determine what to do. */ private boolean isConnected = false; /* Create an SMTPConnection object. Create the socket and the associated streams. Initialize SMTP connection. */ public SMTPConnection(Envelope envelope) throws IOException { connection = new Socket("smtp.".concat(envelope.DestHost), SMTP_PORT); fromServer = new BufferedReader(new InputStreamReader(connection.getInputStream())); toServer = new DataOutputStream(connection.getOutputStream()); /* Read a line from server and check that the reply code is 220. If not, throw an IOException. */ String text = fromServer.readLine(); System.out.println(parseReply(text)); if (parseReply(text) != 220) throw new IOException(); System.out.println("Mail server ".concat("smtp.").concat(envelope.DestHost).concat(" found.")); /* SMTP handshake. We need the name of the local machine. Send the appropriate SMTP handshake command. */ String localhost = (InetAddress.getLocalHost()).getCanonicalHostName(); System.out.println("LOCALHOST: "+localhost); sendCommand("HELO ".concat(localhost), 250); isConnected = true; } /* Send the message. Write the correct SMTP-commands in the correct order. No checking for errors, just throw them to the caller. */ public void send(Envelope envelope) throws IOException { /* Send all the necessary commands to send a message. Call sendCommand() to do the dirty work. Do _not_ catch the exception thrown from sendCommand(). */ sendCommand("MAIL FROM: ".concat(envelope.Sender),250); sendCommand("RCPT TO: ".concat(envelope.Recipient),250); sendCommand("DATA",354); sendCommand(envelope.Message.toString().concat(CRLF).concat("."),250); } /* Close the connection. First, terminate on SMTP level, then close the socket. */ public void close() { isConnected = false; try { sendCommand("QUIT", 221); // closes SMTP connection.close(); // closes socket } catch (IOException e) { System.out.println("Unable to close connection: " + e); isConnected = true; } } /* Send an SMTP command to the server. Check that the reply code is what is is supposed to be according to RFC 821. */ private void sendCommand(String command, int rc) throws IOException{ /* Write command to server and read reply from server. */ System.out.println("Command to server: " + command); command = command.concat(CRLF); // adds newline at end of command. toServer.writeBytes(command); /* Check that the server’s reply code is the same as the parameter rc. If not, throw an IOException. */ String text = fromServer.readLine(); System.out.println("Reply from server: " + text); if (parseReply(text) != rc){ System.out.println("reply codes do not match"); throw new IOException(); } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.