0

我是使用 Desktop.mail(URI) 类的初学者,所以我正在寻找一种在程序触发时添加到、抄送和主题的方法。

     String mailTo = "test@domain.com";
     String cc = "test2@domain.com";
     String subject = "firstEmail";
     String body = "the java message";

    URI uriMailTo = new URI(mailTo,cc,subject,body);
    Desktop desktop;
    desktop = Desktop.getDesktop();
    desktop.mail(uriMailTo);

任何人都可以建议任何教程来学习这个过程,因为我正在寻找更多的功能,比如将数据从 Outlook 接收回 Java 程序。

提前感谢您的帮助!

4

1 回答 1

4

Desktop.mail()函数是一种实用方法,用于启动用户系统中可能存在的任何邮件程序(如果有)。您控制要(最终)发送的实际邮件消息的能力(非常)有限,一旦显示邮件客户端,您就已经完成了 - 也就是您不会得到任何关于实际发送的消息的反馈或是否发送成功了。

如果您需要这种级别的控制,那么您应该使用JavaMail API,它可以满足您的许多需求。

如果您坚持使用桌面邮件客户端,那么您可能需要阅读RFC 2368。它描述了可以包含在mailtoURI 中的所有字段。因此,您将能够填充消息,但您不会收到关于它是否成功发送的反馈:

mailto:joe@example.com?cc=bob@example.com&body=hello+world

构建 URI 的代码示例(顺便说一句,这是不正确的):

final String mailURIStr = String.format("mailto:%s?subject=%s&cc=%s&body=%s",
    mailTo, subject, cc, body);
final URI mailURI = new URI(mailURIStr);

如有必要,替换的地方应进行 URL 编码。

于 2013-01-17T12:41:29.877 回答