2010-03-01 8 views
8

Mi chiedo solo se qualcuno mi può aiutare con un problema che ho incontrato in Java.Java: aprire l'applicazione di posta elettronica predefinita e creare nuovi campi di posta elettronica e campi A e Oggetto

Esiste funzionalità in Java per produrre una sezione di codice che aprirà l'applicazione di posta elettronica predefinita sul PC dell'utente? (Immagino quasi come un elegante collegamento mailto ...)

Se c'è - è possibile popolare campi come i campi A e Oggetto?

Grazie, Mike.

risposta

18

Desktop.mail (URI mailtoURI) è tuo amico!

Javadoc:

lancia la posta finestra del client di posta elettronica predefinito utente a comporre, riempiendo i campi del messaggio specificati da un mailto: URI.

Un mailto: URI può specificare campi messaggio tra cui "to", "cc", "subject", "body", ecc. Vedere The mailto URL scheme (RFC 2368) per il mailto: dettagli delle specifiche URI.

Esempio di codice:

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

Fa questo lavoro per tutto il tempo? Ho provato a utilizzare awt.Desktop.getDesktop() prima e soemtimes semplicemente non funziona - vedi anche http://stackoverflow.com/questions/102325/not-supported-platforms-for-java-awt-desktop -getdesktop – blank

+0

Grazie per il tuo aiuto sfussenegger! Hai reso banale quello che sembrava un problema difficile (per me). Saluti. :) – Mike

+2

+1 per il voodoo – BalusC