import java.io.*; import java.net.*; public class SmtpClient { private BufferedReader from_server; private BufferedReader from_user; private PrintWriter to_server; private PrintWriter to_user; public SmtpClient(int p, String h) { try { String host = h; int port = p; Socket s = new Socket(host,port); from_server = new BufferedReader(new InputStreamReader(s.getInputStream())); to_server = new PrintWriter (new OutputStreamWriter(s.getOutputStream())); from_user = new BufferedReader(new InputStreamReader(System.in)); to_user = new PrintWriter(new OutputStreamWriter(System.out)); } catch (Exception e) { System.err.println("Error occurred creating socket."); System.exit(1); } } public void from(String f) { try { String from = f; String response = from_server.readLine(); to_server.println("MAIL From:"+from); to_server.flush(); response = from_server.readLine(); } catch (Exception e) { System.err.println("Error occurred connecting to server."); System.exit(2); } } public void rcpt(String r) { try { String recipient = r; to_server.println("RCPT To:"+recipient); to_server.flush(); String response = from_server.readLine(); } catch (Exception e) { System.err.println("Error occurred negotiating connection."); System.exit(2); } } public void message(String m) { try { String message = m; to_server.println("DATA"); to_server.flush(); String response = from_server.readLine(); to_server.println(message); to_server.flush(); to_server.println("."); to_server.flush(); response = from_server.readLine(); } catch (Exception e) { System.err.println("Error occurred sending message"); System.exit(7); } } public void quit() { try { to_server.println("QUIT"); to_server.flush(); String response = from_server.readLine(); } catch (Exception e) { System.err.println("Error occurred quitting service"); System.exit(5); } } }