//Emailer //Demonstrates socket programming //connects to port 25 of klingon //communicates through SMTP protocol directly //Transcript of sample conversation: // HELO ds9.cs.iupui.edu // 250 klingon.cs.iupui.edu Hello ds9 [134.68.140.211], pleased to meet you // MAIL from: aharris@cs.iupui.edu // 250 aharris@cs.iupui.edu... Sender ok // RCPT to: aharris@cs.iupui.edu // 250 aharris@cs.iupui.edu... Recipient ok // DATA // 354 Enter mail, end with "." on a line by itself // subject: THis is a bogus piece of mail // . // 250 OAA04502 Message accepted for delivery // quit import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; public class Emailer { public static void main(String args[]){ Emailer em = new Emailer(); } // end main public Emailer(){ try { //generate screen-based IO InputStreamReader isr = new InputStreamReader(System.in); BufferedReader screenIn = new BufferedReader(isr); PrintStream screenOut = new PrintStream(System.out); //generate socket IO connections Socket sock = new Socket("klingon.cs.iupui.edu", 25); PrintWriter sockOut = new PrintWriter(sock.getOutputStream()); BufferedReader sockIn = new BufferedReader( new InputStreamReader(sock.getInputStream())); screenOut.println(sockIn.readLine()); //read the initial input screenOut.println("connecting to socket"); //write stuff to the socket screenOut.println("Sending HELO message..."); sockOut.println("HELO ds9.cs.iupui.edu"); //screenOut.println(sockIn.readLine()); sockOut.println("MAIL from: aharris@cs.iupui.edu"); sockOut.println("RCPT to: aharris@cs.iupui.edu"); sockOut.println("DATA"); sockOut.println("subject: a stupid email"); sockOut.println("Really, I have nothing to say..."); sockOut.println("."); //close down the connection screenOut.println("quitting"); sockOut.println("QUIT"); //screenOut.println(sockIn.readLine()); } catch (Exception e){ e.printStackTrace(); } // end try } // end constructor } // end class def