Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java: Open default mail application and create new mail and populate To and Subject fields

Just wondering if anyone can help me with a problem I've come across in Java.

Is there functionality within Java to produce a section of code that will open the default email application on a user's PC? (I guess almost like a fancy mailto link...)

If there is - is it possible to populate fields such as the To and Subject fields?

Thanks, Mike.

like image 824
Mike Avatar asked Mar 01 '10 17:03

Mike


1 Answers

Desktop.mail(URI mailtoURI) is your friend!

Javadoc:

Launches the mail composing window of the user default mail client, filling the message fields specified by a mailto: URI.

A mailto: URI can specify message fields including "to", "cc", "subject", "body", etc. See The mailto URL scheme (RFC 2368) for the mailto: URI specification details.

Example Code:

Desktop desktop;
if (Desktop.isDesktopSupported() 
    && (desktop = Desktop.getDesktop()).isSupported(Desktop.Action.MAIL)) {
  URI mailto = new URI("mailto:[email protected]?subject=Hello%20World");
  desktop.mail(mailto);
} else {
  // TODO fallback to some Runtime.exec(..) voodoo?
  throw new RuntimeException("desktop doesn't support mailto; mail is dead anyway ;)");
}
like image 55
sfussenegger Avatar answered Nov 06 '22 22:11

sfussenegger