Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.net.ConnectException;
- import java.net.Socket;
- public class EmailSender {
- public static void main(String[] args) {
- /* INITIALIZING VARIABLES */
- //Declaring variable and pulling values from arguments
- String emailserver_hostname = args[0];
- int emailserver_port_number = Integer.parseInt(args[1]);
- String my_username = args[2];
- String my_emailaddress = args[3];
- // Initializing client's socket to connect to email server (connectsocket)
- Socket connectsocket = null;
- // Initializing responses from EmailServer
- String replycode = "";
- // Initializing email to be sent
- String email_body = "SUBJECT: TEST" + System.getProperty("line.separator") + "Test" + ";" + ".." + "/n" + System.getProperty("line.separator") + ".";
- /* ESTABLISHING TCP CONNECTION */
- try {
- // Creating a socket and connecting to server
- connectsocket = new Socket(emailserver_hostname, emailserver_port_number);
- // Establishing IO stream writers for the socket.
- // Note: I know the examples use DataOutputStream, but I could only get it to work when using
- // PrintWriter methods. I learned about it from here:
- // http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
- PrintWriter dataout = new PrintWriter(connectsocket.getOutputStream(), true);
- BufferedReader datain = new BufferedReader(new InputStreamReader(connectsocket.getInputStream()));
- // Obtaining the 220 reply code
- replycode = datain.readLine();
- // Print it to the user
- System.out.println(replycode);
- /* SENDING COMMANDS */
- // Processing HELO command
- dataout.println("HELO " + my_username);
- System.out.println("HELO " + my_username);
- replycode = datain.readLine();
- System.out.println(replycode);
- // Processing MAIL FROM command
- dataout.println("MAIL FROM: " + my_emailaddress);
- System.out.println("MAIL FROM: " + my_emailaddress);
- replycode = datain.readLine();
- System.out.println(replycode);
- // Processing RCPT TO command
- dataout.println("RCPT TO: " + my_emailaddress);
- System.out.println("RCPT TO: " + my_emailaddress);
- replycode = datain.readLine();
- System.out.println(replycode);
- // Processing DATA command and email to be sent
- dataout.println("DATA");
- System.out.println("DATA");
- replycode = datain.readLine();
- System.out.println(replycode);
- dataout.println(email_body);
- System.out.println(email_body);
- replycode = datain.readLine();
- System.out.println(replycode);
- // Processing QUIT command
- dataout.println("QUIT");
- replycode = datain.readLine();
- System.out.println(replycode);
- replycode = datain.readLine();
- System.out.println(replycode);
- // Closing the socket when connection is closed. (I know the server does it as well, but why leave a waiting port)
- connectsocket.close();
- // Catching exceptions thrown by server
- }catch (IOException e) {
- System.out.println("Error with connection, connection not established.");
- e.printStackTrace();
- System.exit(1);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement