2010-03-01 6 views
8

Ich frage mich, ob mir jemand mit einem Problem helfen kann, das ich in Java gefunden habe.Java: Öffnen Sie die Standard-E-Mail-Anwendung und erstellen Sie neue E-Mails und füllen Sie die Felder An und Betreff.

Gibt es innerhalb von Java die Möglichkeit, einen Codeabschnitt zu erstellen, der die Standard-E-Mail-Anwendung auf dem PC eines Benutzers öffnet? (Ich denke fast wie ein schicker Mailto-Link ...)

Wenn es - ist es möglich, Felder wie die Felder An und Betreff zu füllen?

Danke, Mike.

Antwort

18

Desktop.mail (URI mailtoURI) ist dein Freund!

Javadoc-:

Startet die Mail des Benutzers Standard-Mail-Client-Fenster Komponieren, die Nachrichtenfelder durch einen mailto angegebenen Füllung: URI.

Ein mailto: URI kann Nachricht Felder wie "zu", "cc", "Betreff", "Körper" usw. angeben. Siehe The mailto URL scheme (RFC 2368) für die Details mailto: URI-Spezifikation.

Beispielcode:

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 ;)"); 
} 
+0

funktionierts die ganze Zeit? Ich habe versucht, vorher awt.Desktop.getDesktop() zu verwenden und manchmal funktioniert es einfach nicht - siehe auch http://stackoverflow.com/questions/102325/not-supported-platforms-for-java-awt-desktop -getdesktop – blank

+0

Danke für Ihre Hilfe sfussenegger! Du hast das, was ein schwieriges Problem (für mich) klang, trivial klingen lassen. Prost. :) – Mike

+2

+1 für die Voodoo – BalusC