我几乎认为这是JavaMail API中的一个错误。
我正在做myMessage.reply(true)
来生成新邮件。但是,尽管传统的“全部回复”理解,JavaMail将自己(第一条消息的收件人myMessage
)包括为新消息的接收者之一(由reply(true)
创建)。
在任何电子邮件应用程序中,对所有人进行回复都不会将自己添加到新邮件中。
它看起来像一个bug,不是吗? 还有其他人有/同样的问题吗?
答案 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
实例中删除自己。