我从接收邮件中提取BCC地址时遇到一个问题。 以下是使用的示例代码。
public EmailVO dumpEnvelope(Message m) throws Exception {
EmailVO emailVO = new EmailVO();
if ((addresses = m.getRecipients(Message.RecipientType.BCC)) != null) {
emailVO.setBcc(this.getAddresses(addresses, "BCC"));
}
}
我在BCC中获得空值。 在调试时我在标题字段中找到了BCC收件人的名字,但我无法访问该标题。 此代码问题或发送邮件时是否存在某些特定设置,例如不包括BCC字段?
答案 0 :(得分:2)
Bcc的重点在于它是一张盲目副本 - 收件人不会看到谁被复制。您在收到的邮件中看不到密件抄送字段。 (有时,密件抄送收件人会在他们收到的邮件中看到密件抄送标题,但其他收件人会收到邮件的副本而没有密件抄送。但我不认为很多邮件人会这样做,因为它需要发送两个不同版本的消息。)
答案 1 :(得分:1)
您可以检查包含邮件所有详细信息的Message对象。 由于BCC是邮件的一部分,但它也会被隐藏,但据我所知,您可以从邮件头中检索信息。
Address[] addresses = m.getHeader("Your Header Name HERE");
这将为您提供有关邮件中特定标题标记的所有详细信息。
,例如
Address[] addresses = m.getHeader("Delivered-To");
此标记将为您提供有关邮件收件人的所有信息,其中还包括BCC。
您还可以为邮件添加自定义标题。
答案 2 :(得分:0)
addresses = m.getRecipients(Message.RecipientType.BCC);
返回一个地址数组。您可以在for循环中检查内容:
Address[] addresses = m.getRecipients(Message.RecipientType.BCC);
for(Address address : addresses){
System.out.println(address);
}