当前位置: 首页 > 面试题库 >

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

柯立果
2023-03-14
问题内容

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

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

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

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

open mailto:?subject=MySubject&body=TheBody

需要使用网址转义符将替换为%20

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

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);
    }
}

问题答案:

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



 类似资料:
  • 问题内容: 如何在Mac OS X和Linux上使用“ printf”输出彩色文本? 问题答案: 您可以使用ANSI颜色代码。这是一个示例程序: 该是字符。如果愿意,可以使用。 网上有所有代码的清单。 这是一个。

  • 问题内容: 我正在使用Java 1.5,并且想启动相关的应用程序来打开文件。我知道Java 1.6引入了Desktop API ,但是我需要 Java 1.5 的解决方案。 到目前为止,我找到了在Windows中执行此操作的方法: 有跨平台的方法吗?或者至少是针对 Linux 的类似解决方案? 问题答案: 另外,我建议使用多态性进行以下实现: 这样,您可以通过减少类之间的耦合来更轻松地添加新平台。

  • 问题内容: 我已经读过,例如在读取文本文件并将文本导入数组等时使用平台默认字符编码是一个坏主意。您能否解释一下这将如何影响跨平台性能,以及如何解决该问题?是否有用于跨平台应用程序的编码?谢谢 问题答案: 这与性能无关,而是与显示和阅读正确编码的文本有关。有很多方法可以解决该问题: 设置JVM选项 始终使用字符编码参数重载的方法。这些都对那些,,等等。 我认为后者是必须的。如果始终设置jvm选项,它

  • 问题内容: 如何使用Java中的默认关联程序打开文件?(例如电影文件) 问题答案: 你可以使用Desktop.getDesktop().open(File file)。 似乎无法使用java.awt.Desktop,必须区分以下操作系统:Windows: Linux: 苹果电脑: HTH。显然,这不是便携式的…

  • 问题内容: 我的程序成功创建并填充了Excel(.xls)文件。创建完成后,我希望在系统的默认程序(以Excel为例)中打开新文件。我该如何实现? 对于我想在记事本中打开txt文件的旧程序,我使用了以下命令: 当我尝试将此代码用于Excel文件时,出现以下错误: 有什么建议吗? 问题答案: 尝试使用Desktop.open()而不是Desktop.edit(): 如果Desktop.open()不

  • 问题内容: 我有一个Python 3脚本,它将在一些RTF文本文件()上做一些正则表达式替换,并且我希望能够在Windows,Linux和Mac上打印出整个目录的文件。 有没有一种方法可以打印到操作系统的默认打印机,从而使其在所有平台上均可工作? 问题答案: 没有跨平台的方式。在Linux和OS X上,您可以通过调用,而CUPS将尽可能地更好地处理文档转换,但是Windows比较麻烦。