在Desktop.mail(uri)中添加,cc,subject

时间:2013-01-17 12:27:45

标签: java email

我是使用Desktop.mail(URI)类的初学者,所以我正在寻找一种方法来添加,cc,并在程序触发时受制于邮件。

     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程序。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

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

如果您需要这种级别的控制,那么您应该使用JavaMail API,它会执行您需要的许多操作。

如果您对使用桌面邮件客户端感到困惑,那么您可能需要阅读RFC 2368。它描述了可以包含在mailto URI中的所有字段。因此,您将能够填充该消息,但您无法获得有关成功发送的反馈:

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

构造URI的代码示例(btw不正确):

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

如果需要,替换应该是URL编码。