Java:打开默认的邮件应用程序并创建新邮件并填充收件人和主题字段

10

我想知道是否有人能帮我解决Java中遇到的问题。

Java中是否有功能可以生成一段代码,以打开用户PC上的默认电子邮件应用程序?(我猜就像一个高级的mailto链接...)

如果有的话,是否可以填写诸如收件人和主题字段之类的字段?

谢谢, 迈克。

1个回答

24

Desktop.mail(URI mailtoURI)是您的好朋友!

Javadoc:

启动用户默认邮件客户端的邮件撰写窗口,填写由mailto: URI指定的消息字段。

mailto: URI可以指定包括“to”、“cc”、“subject”、“body”等消息字段。有关mailto: URI规范的详细信息,请参见The mailto URL scheme (RFC 2368)

示例代码:

Desktop desktop;
if (Desktop.isDesktopSupported() 
    && (desktop = Desktop.getDesktop()).isSupported(Desktop.Action.MAIL)) {
  URI mailto = new URI("mailto:john@example.com?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 ;)");
}

这个能一直工作吗?我之前尝试过使用awt.Desktop.getDesktop(),但有时候它就是不起作用 - 请参见https://dev59.com/AHVD5IYBdhLWcg3wE3No。 - blank
感谢您的帮助,sfussenegger!您让听起来很困难的问题(对我来说)变得微不足道。干杯。 :) - Mike
@Bedwyr 我认为你链接的问题已经说明了一切。我已经更新了代码以反映这一点。它应该在Windows上可靠地工作; 不过,不同操作系统的所有用户肯定都能自己写邮件 ;) - sfussenegger
@BalusC 如果编码不够,拥有其他才能总是很好的选择 ;) - sfussenegger
幸运的是,我住的地方有巫术实践者 ;) - BalusC
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接