【问题标题】:Why does javamail API have an array of senders for messages?为什么 javamail API 有一组消息发件人?
【发布时间】:2012-07-29 08:35:28
【问题描述】:

我需要使用某种端口到 javaMail(链接 here),它从电子邮件服务器(在我的情况下为 gmail,但将来可能会更改)获取消息,并从中读取一些信息。

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

我的问题是:这种方法在什么情况下会返回:

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

?

我所有的电子邮件总是只有一个发件人,无论它发送得多么奇怪(抄送、密送、转发……)。

他们在那里说“在某些实现中,这可能与实际发送消息的实体不同。” ,那么我怎么能确定谁发送了消息,以及当前的实现是否正常?

【问题讨论】:

    标签: java android email jakarta-mail


    【解决方案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) 它检查电子邮件的“发件人”字段并返回一个地址对象数组,其中每个对象有一个地址 在该字段中找到的实体。因此,当列出多个“发件人”时,它将返回一个大小 > 1 的数组

    【讨论】:

    • 怎么可能没有发件人? #1 和 #2 有什么区别?我仍然不知道在哪种情况下会有多个发件人或 0 。这只是电子邮件服务器的问题吗?你能想到会发生这种奇怪场景的任何场景吗?
    • 可能是系统生成的电子邮件格式错误并遗漏了发件人字段,或者可能添加了该字段但未向其中添加任何发件人值。这是不太可能但可能发生的事情之一。
    • 除非邮件已签名并且您验证签名,否则不会对电子邮件的任何内容进行身份验证。否则,该消息可能包含任何内容,无论是真还是假,并且应该小心您信任的内容。这就是为什么 98% 的电子邮件都是垃圾邮件。
    • 所以,即使它没有任何意义,他们也是这样,因为你不能保证数据是好的?
    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    相关资源
    最近更新 更多