import java.io.*; import java.net.*; /* javaMailTo.java Send email via mailto: URL RJM Programming February, 2018 Usage: java javaMailTo [] [ [ [ []]]] */ public class javaMailTo { public static void main(String[] args) { try { int next = 0; if (args.length >= (next + 1)) { if (args[next].indexOf("@") == -1) { System.getProperties().put("mail.host", args[next]); next++; } } BufferedReader myIn = new BufferedReader(new InputStreamReader(System.in)); String myFrom = ""; String myTo = ""; String mySubject = ""; String myBody = ""; if (args.length >= (next + 1)) { myFrom = args[next]; next++; } else { System.out.print("From: "); myFrom = myIn.readLine(); } if (args.length >= (next + 1)) { myTo = args[next]; next++; } else { System.out.print("To: "); myTo = myIn.readLine(); } if (args.length >= (next + 1)) { mySubject = args[next]; next++; } else { System.out.print("Subject: "); mySubject = myIn.readLine(); } URL myU = new URL("mailto:" + myTo); URLConnection myC = myU.openConnection(); myC.setDoInput(false); myC.setDoOutput(true); System.out.println("Connecting..."); System.out.flush(); myC.connect(); PrintWriter myOut = new PrintWriter(new OutputStreamWriter(myC.getOutputStream())); if (args.length >= (next + 1)) { myBody = args[next]; next++; myOut.println("From: \"" + myFrom + "\" <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">"); myOut.println("To: " + myTo); myOut.println("Subject: " + mySubject); myOut.println(); myOut.println(myBody); myOut.close(); System.out.println("Message sent now."); System.out.flush(); } else { myOut.println("From: \"" + myFrom + "\" <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">"); myOut.println("To: " + myTo); myOut.println("Subject: " + mySubject); myOut.println(); System.out.println("Enter the message. " + "End with a '.' on a line by itself."); String myLine; for (;;) { myLine = myIn.readLine(); if ((myLine == null) || myLine.equals(".")) break; myOut.println(myLine); } myOut.close(); System.out.println("Message sent."); System.out.flush(); } } catch (Exception err) { System.err.println(err); System.err.println("Usage: java javaMailTo [] [ [ [ []]]]"); } } }