2012-07-31 57 views
0

我需要使用某种类型的端口到javaMail(链接here),该端口从电子邮件服务器接收邮件(本例中为gmail,但将来可能会更改),并从中读取一些信息。为什么javamail API有一组消息发送者?

我在API中注意到的一件事是,getFrom方法返回一个Address对象数组,如here所示。

我的问题是:在这种情况下,将这个方法的返回:

  1. 空数组
  2. 超过1发件人

我的所有电子邮件总是只有一个发件人,无论它发送多么奇怪(CC,BCC,转发,...)。

他们在那里说“在某些实现中,这可能与实际发送消息的实体不同。” ,所以我怎么知道谁发送了这个消息,以及如果当前的实现是好的?

回答

1

弗里斯特两个直接从API:

(该属性= '发件人' 有问题的电子邮件的属性)

1)This method returns null if this attribute is not present in this message.

2)Returns an empty array if this attribute is present, but contains no addresses.

3)它检查电子邮件的'from'字段,并返回一个Address对象数组,其中每个 实体在该字段中找到一个地址。因此,当列表中有多个“发件人”时,它将返回大小大于1的数组。

+0

怎么会有没有发件人? #1和#2有什么区别?我仍然没有得到在哪些情况下会有多个发件人或0。这只是电子邮件服务器的问题吗?你能想到这种奇怪的场景会发生的任何场景吗? – 2012-07-31 15:33:30

+0

这可能是一个系统生成的电子邮件形成不良,离开字段或可能会添加字段,但不会添加任何发件人值。这是不可能的,但可能的事情之一。 – 2012-07-31 15:36:34

+0

除非邮件已签名且您验证了签名,否则不会对电子邮件的任何内容进行身份验证。否则,该消息可以包含任何内容,是真是假,并且应该小心你信任的内容。这就是为什么98%的电子邮件都是垃圾邮件。 – 2012-07-31 17:18:33

相关问题