JavaMail:回复所有人都包括原始收件人

时间:2014-03-21 21:29:39

标签: java javamail

我几乎认为这是JavaMail API中的一个错误。

我正在做myMessage.reply(true)来生成新邮件。但是,尽管传统的“全部回复”理解,JavaMail将自己(第一条消息的收件人myMessage)包括为新消息的接收者之一(由reply(true)创建)。 在任何电子邮件应用程序中,对所有人进行回复都不会将自己添加到新邮件中。

它看起来像一个bug,不是吗? 还有其他人有/同样的问题吗?

3 个答案:

答案 0 :(得分:2)

JavaMail需要知道您的地址是什么。它使用InternetAddress.getLocalAddress方法确定这一点。有关其工作原理,请参阅javadocs。然后确保您的地址不会出现在新邮件的收件人列表中。如果它不适合您,那很可能是因为JavaMail不知道您的电子邮件地址是什么。

此外,在JavaMail参考实现中,Session属性" mail.alternates"可以是您熟悉的其他电子邮件地址列表。这些也将在收件人列表中删除。

答案 1 :(得分:1)

javadocs清楚地说:

  

如果设置了replyToAll,则新邮件将发送给此邮件的所有收件人。否则,回复将仅发送给此消息的发件人(使用getReplyTo方法的值)。

在电子邮件客户端中,您通常(较旧的OWA不够智能)具有智能行为,因为此类应用程序的开发人员对此进行了解决并决定这样做,但它肯定不是javamail中的错误。 / p>

答案 2 :(得分:0)

文档不够清晰。 使用getRecipients作为参数在Recipient.TO上执行for循环,然后从回复Message实例中删除自己。