Advertisement
Guest User

hurrdurrimasheep

a guest
Mar 29th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.33 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.ConnectException;
  3. import java.net.Socket;
  4.  
  5. public class EmailSender {
  6.    
  7.     public static void main(String[] args) {
  8.        
  9. /* INITIALIZING VARIABLES                                                     */
  10.     //Declaring variable and pulling values from arguments     
  11.         String emailserver_hostname = args[0];
  12.         int emailserver_port_number = Integer.parseInt(args[1]);
  13.         String my_username = args[2];
  14.         String my_emailaddress = args[3];                                                    
  15.        
  16.     // Initializing client's socket to connect to email server (connectsocket)     
  17.         Socket connectsocket = null;
  18.        
  19.     // Initializing responses from EmailServer
  20.         String replycode = "";
  21.        
  22.     // Initializing email to be sent
  23.         String email_body = "SUBJECT: TEST" + System.getProperty("line.separator") + "Test" + ";" + ".." + "/n" + System.getProperty("line.separator") + ".";
  24.        
  25. /* ESTABLISHING TCP CONNECTION                                              */
  26.        
  27.             try {
  28.             // Creating a socket and connecting to server
  29.                 connectsocket = new Socket(emailserver_hostname, emailserver_port_number);
  30.            
  31.             // Establishing IO stream writers for the socket.
  32.                 // Note: I know the examples use DataOutputStream, but I could only get it to work when using
  33.                 // PrintWriter methods. I learned about it from here:                          
  34.                 // http://docs.oracle.com/javase/tutorial/networking/sockets/clientServer.html
  35.            
  36.                 PrintWriter dataout = new PrintWriter(connectsocket.getOutputStream(), true);
  37.                 BufferedReader datain = new BufferedReader(new InputStreamReader(connectsocket.getInputStream()));
  38.            
  39.  
  40.                 // Obtaining the 220 reply code
  41.                 replycode = datain.readLine();
  42.                 // Print it to the user
  43.                 System.out.println(replycode);                                                 
  44.                
  45. /* SENDING COMMANDS                                     */
  46.             // Processing HELO command
  47.                 dataout.println("HELO " + my_username);
  48.                 System.out.println("HELO " + my_username);
  49.                 replycode = datain.readLine();
  50.                 System.out.println(replycode);
  51.            
  52.             // Processing MAIL FROM command
  53.                 dataout.println("MAIL FROM: " + my_emailaddress);
  54.                 System.out.println("MAIL FROM: " + my_emailaddress);
  55.                 replycode = datain.readLine();
  56.                 System.out.println(replycode);
  57.  
  58.             // Processing RCPT TO command
  59.                 dataout.println("RCPT TO: " + my_emailaddress);
  60.                 System.out.println("RCPT TO: " + my_emailaddress);
  61.                 replycode = datain.readLine();
  62.                 System.out.println(replycode);
  63.  
  64.             // Processing DATA command and email to be sent
  65.                 dataout.println("DATA");
  66.                 System.out.println("DATA");
  67.                 replycode = datain.readLine();
  68.                 System.out.println(replycode);
  69.                 dataout.println(email_body);
  70.                 System.out.println(email_body);
  71.                 replycode = datain.readLine();
  72.                 System.out.println(replycode);
  73.            
  74.             // Processing QUIT command
  75.                 dataout.println("QUIT");
  76.                 replycode = datain.readLine();
  77.                 System.out.println(replycode);
  78.                 replycode = datain.readLine();
  79.                 System.out.println(replycode);
  80.                    
  81.            
  82.                 // Closing the socket when connection is closed. (I know the server does it as well, but why leave a waiting port)
  83.                 connectsocket.close();
  84.  
  85.                
  86.             // Catching exceptions thrown by server
  87.             }catch (IOException e) {
  88.                 System.out.println("Error with connection, connection not established.");
  89.                 e.printStackTrace();
  90.                 System.exit(1);
  91.         }
  92.     }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement