2010-03-01 14 views
8

Zastanawiam się, czy ktoś może mi pomóc z problemem, na który natrafiłem w Javie.Java: Otwórz domyślną aplikację pocztową i utwórz nową pocztę i wypełnij pola Do i Temat.

Czy w ramach Java istnieje możliwość utworzenia sekcji kodu, która otworzy domyślną aplikację pocztową na komputerze użytkownika? (Przypuszczam, że jest to prawie jak fantazyjny link mailto ...)

Jeśli istnieje - czy można wypełnić pola takie jak pola Do i Temat?

Dzięki, Mike.

Odpowiedz

18

Desktop.mail (URI mailtoURI) jest twoim przyjacielem!

Javadoc:

uruchamia pocztę okno domyślnego klienta poczty użytkownik komponowania, wypełnianie pól komunikatów określone przez mailto: URI.

Adres mailto: URI może określać pola wiadomości, w tym "do", "cc", "subject", "body", itd. Aby uzyskać szczegóły specyfikacji adresu mailto: URI, patrz: The mailto URL scheme (RFC 2368).

Przykład Kod:

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

to działa cały czas? Próbowałem wcześniej użyć awt.Desktop.getDesktop() i tak po prostu to nie działa - patrz również http://stackoverflow.com/questions/102325/not-supported-platforms-for-java-awt-desktop -getdesktop – blank

+0

Dzięki za pomoc sfussenegger! Zrobiłeś to, co brzmiało trudny problem (dla mnie) brzmi banalnie. Twoje zdrowie. :) – Mike

+2

+1 za voodoo – BalusC