Hi, I am getting an exception while trying to send an email. I am executing it from my local workspace.
This is the code that I am using
Runtime rt = Runtime.getRuntime(); int rc = 0; try { Process p = rt.exec(new String[] { "/usr/bin/mail", "-s", Subject, tempmaillist }); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(p.getOutputStream())); bw.write(voidMessage); .. .. bw.close();
p.waitFor(); rc = p.exitValue(); p.destroy(); } catch (Exception e) { .. .. } As soon as I execute (in debug mode) Process p = rt.exec(new String[] { "/usr/bin/mail", "-s", Subject, tempmaillist }); an exception is thrown
CreateProcess: /usr/bin/mail -s "Invalid data. Check the data" error=3
Can anybody please let me know what the problem could be.
A better and platform-independent way to send e-mail from a Java program is by using the JavaMail API, instead of calling a native executable as you are doing now.
Your code works fine for me. Like the error message states, the data you are sending the process probably has problems. As Jesper says, the JavaMail API is probably a better solution.