2009-08-06 11 views
1

デフォルトのメールクライアントを使用して「新規メール」ビューを開く(Outlookで新しいメールフォームを開く)。私はJava/Windowsから新規メール(既定のクライアント)を作成する

String cmd = "explorer.exe \"mailto:[email protected]?subject="+ 
      subject+"&body="+body+"\""; 
Runtime.getRuntime().exec(cmd); 

に行くときでもメールが現れたが、私は問題を抱えている:explorer.exeは、ダミーページをInternet Explorerのインスタンスを起動します。特定の引数を持つrundll.exeなど、実行するためのより良いアプリケーションがありますか?

私は、C++からiexploreを起動せずにそれを行うことは可能ですが、Javaではどのようにしたらよいか分かりません。

答えて

2

は(javaの6)

Desktop dt = Desktop.getDesktop(); 
dt.mail(); 

は、デフォルトのメールクライアント(:プロトコルのmailtoに関連したもの)を開きますjava.awt.Desktopで試してみてください。

+0

ご覧のとおり、私は被験者と身体も欲しいです。私は添付ファイルを愛するでしょうが、私が読んだことから、それは実行できません。 –

+1

APIはこれをサポートしています。 uriMailTo =新しいURI( "mailto"、 "[email protected]?subject =" + subject + "&body =" + body + "\"、null); dt.mail(uriMailTo); – RealHowTo

+0

優秀、ありがとう!私は添付ファイルを取得していくつかを読んだが、実際の物質を発見した。 JDIC(私たちは最後に取り除きました)とhttp://stackoverflow.com/questions/81862/how-do-i-send-an-email-attachment-using-the-designated-client-programmatically-fは私が見た中で最高のものであり、どれも十分に良いものではありません。あなたはもっと知りませんか? –

1

rundll.exeのためにグーグルとき、私は答えを見つけた:

String subject = ...; 
String body = ...; 
String cmd = "rundll32.exe shell32.dll,ShellExec_RunDLL \"mailto:[email protected]?"+ 
      "subject="+subject+"&body="+body+"\""; 
Runtime.getRuntime().exec(cmd); 
あなたの時間を無駄にして申し訳ありません

+0

Jonas:Windowsの将来のバージョンで変更される可能性がある文書化されていない実装の詳細に頼るのではなく、ShellExecute()を試したことがありますか? –

+0

ラリー:私はJavaのためのものはないと思いましたか? JNIについては、Java、Cおよびビルドシステムよりも50行分のコードのマイナーな調整が必要な2行のJavaコードが非常に好きです。 –

関連する問題