如何以跨平台方式打开带有主题和正文的默认邮件程序?

2022-09-04 06:48:43

如何以跨平台方式打开带有主题和正文的默认邮件程序?

不幸的是,这是针对用Java编写的客户端应用程序,而不是网站。

我希望它以跨平台的方式工作(这意味着Windows和Mac,对不起Linux)。我很高兴在Windows中执行VBScript,或在OS X中执行AppleScript。但我不知道这些脚本应该包含什么。我很想执行用户的默认程序,而不是只搜索Outlook或其他任何东西。

在OS X中,我尝试执行以下命令:

open mailto:?subject=MySubject&body=TheBody

需要 URL 转义才能将空格替换为 。%20

更新在Windows上,您必须玩各种游戏才能正常运行。这是正确的Java咒语:start

class Win32 extends OS {
    public void email(String subject, String body) throws Exception {
        String cmd = "cmd.exe /c start \"\" \"" + formatMailto(subject, body) + "\"";
        Runtime.getRuntime().exec(cmd);
    }
}

答案 1

在Java 1.6中,你有一个打开平台的默认邮件程序的stardard方法:Desktop.mail(URI)方法。URI 可用于设置邮件的所有字段(发件人、收件人、正文、主题)。您可以在 Java SE 6 中使用桌面 API 查看 Java 1.6 中桌面集成的完整示例


答案 2

start在Windows中工作正常(见下文)。我会使用Java内置的UrlEscape,然后只运行第二个“+”字符的替换。

start mailto:"?subject=My%20Subject&body=The%20Body"