gpt4 book ai didi

java - 一条消息可以有多个发件人吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:47 25 4
gpt4 key购买 nike

当我想检查谁用 JavaMail 向我发送了一封特定的电子邮件时。

我可以用

Message.getFrom()

返回一个

Message[]

在什么情况下一个复活的消息可以有多个它来自的身份?

关于 API这对于外发电子邮件更有意义。

所以我真的可以,那:

Address from = message.getFrom()[0];

总是准确地返回 1 个发送消息的地址?

我现在已经实现了类似的东西:

Address[] fromAddress = message.getFrom();

if (fromAddress == null || fromAddress.length > 1) {
// Don't Process the Email and Notify me
}

最佳答案

是的,看来Message.getFrom()真的可以返回多个地址。

我查看了 Apache Geronimo 的 JavaMail API 实现的源代码,如果有多个 From: header ,或者一个 header 中有多个地址,它将返回多个地址。

至于这是否会发生:

正如 Alex K. 的回答所解释的那样,如果只有一个“发件人”,则该标准允许使用多个“发件人”地址。我不知道是否真的有人发送具有多个“发件人”地址的邮件,但它符合标准。

实践中实际发生的另一种情况:

一些垃圾邮件发送者显然会发送带有多个 From: header 的邮件。这不符合标准,但显然某些邮件服务器仍然接受邮件。这样做显然是为了绕过按 From: 地址过滤的邮件过滤器。垃圾邮件发送者包含多个地址,希望头脑简单的过滤器在找到一个带有它喜欢的“发件人”地址的 header 时让邮件通过。

总而言之:是的,您应该期望 Message.getFrom() 返回多个地址(或根本没有)。但是,您可能不需要花费大量精力来处理这种情况。也许您甚至可以将其记录为错误而逃脱 - 这取决于您的应用程序。

关于java - 一条消息可以有多个发件人吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21480430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com