wood burning stoves 2.0*
The moose likes Java in General and the fly likes Sending email using  /usr/bin/mail Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "Sending email using  /usr/bin/mail" Watch "Sending email using  /usr/bin/mail" New topic
Author

Sending email using /usr/bin/mail

lina ajay
Ranch Hand

Joined: Apr 04, 2008
Posts: 31
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.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14352
    
  22

Sorry, I don't have a solution for your problem.

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.


Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 8 API documentation
Joe Ess
Bartender

Joined: Oct 29, 2001
Posts: 8971
    
    9

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.


[How To Ask Questions On JavaRanch]
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Sending email using /usr/bin/mail