从Java/Windows创建新邮件(默认客户端)

从Java/Windows创建新邮件(默认客户端),java,windows,explorer,mailto,Java,Windows,Explorer,Mailto,我想使用默认邮件客户端打开“新建邮件”视图(即在Outlook中打开新邮件表单)。但是当我走的时候 String cmd = "explorer.exe \"mailto:a@b.com?subject="+ subject+"&body="+body+"\""; Runtime.getRuntime().exec(cmd); 邮件显示了,但我有一个问题:explorer.exe显示了一个带有虚拟页面的Internet explorer实例。是否有更好的应用程

我想使用默认邮件客户端打开“新建邮件”视图(即在Outlook中打开新邮件表单)。但是当我走的时候

String cmd = "explorer.exe \"mailto:a@b.com?subject="+
             subject+"&body="+body+"\"";
Runtime.getRuntime().exec(cmd);
邮件显示了,但我有一个问题:
explorer.exe
显示了一个带有虚拟页面的Internet explorer实例。是否有更好的应用程序可以运行,例如带有某些参数的rundll.exe

我知道不需要从C++中进行IGISH,但我不知道java是如何实现的。

< P>(java 6)< /P>
将打开默认邮件客户端(与mailto:protocol关联的客户端)。

我在搜索rundll.exe时找到了答案:

String subject = ...;
String body = ...;
String cmd = "rundll32.exe shell32.dll,ShellExec_RunDLL \"mailto:a@b.com?"+
             "subject="+subject+"&body="+body+"\"";
Runtime.getRuntime().exec(cmd);

对不起,浪费了你的时间

正如你们所看到的,我也想要主体和身体。我会喜欢附件,但从我所读到的来看,它是不可行的。API支持这一点。uriMailTo=新URI(“mailto”,“jonas”。bystrom@mentice.com?subject=“+subject+”&body=“+body+”\”,null);邮递公司(uriMailTo);太好了,谢谢!我读了一些关于获取附件的文章,但没有找到真正的内容。JDIC(我们刚刚最终摆脱了它)是我见过的最好的,但它们都不够好。你不会碰巧知道更多吗?好吧,这是mailto:协议的一个限制,你不能指定附件。乔纳斯:你试过ShellExecute()而不是依赖可能在未来版本的Windows中更改的未记录的实现细节吗?拉里:我认为Java没有实现细节?至于JNI-ing,我非常喜欢两行Java代码,它们可能(也许不是)需要对分布在Java、C和build系统上的50行代码进行轻微调整。
String subject = ...;
String body = ...;
String cmd = "rundll32.exe shell32.dll,ShellExec_RunDLL \"mailto:a@b.com?"+
             "subject="+subject+"&body="+body+"\"";
Runtime.getRuntime().exec(cmd);