SMTP 服务器有没有办法响应用户已移至新地址?

SMTP 服务器有没有办法响应用户已移至新地址?

SMTP 服务器有没有办法告诉 MTA 用户已移至新地址?

有许多SMTP 返回代码,包括邮箱已满、地址不存在、邮件被拒绝等常见情况。

目前是否有或是否有提案允许服务器使用错误代码来响应传入邮件,表明用户已更改电子邮件地址并且现在可在新域名上使用?

再次强调,草案可以。我看过RFC 5321 第 4.2.3 节也许‘251:非本地用户将转发’有效,但我不确定电子邮件在 2020 年实际上是如何运作的。

用例:用户在电子邮件提供商之间迁移是一种常见的情况,我可以想象有一个宽限期(旧的提供商让传入的 MTA 知道用户已经移动到了另一个地址)可能之前已经讨论过了。

例子一名用户[电子邮件保护],但已移至 bar.com。foo.com 很高兴让传入连接知道此身份现在位于不同的域,并且发送者应该在一段时间内(比如 12 个月)更新他们的地址簿,之后 foo.com 不再为这个身份提供任何服务。

答案1

这两种情况都有这样的状态代码

  • 转发 ( 251 User not local; will forward to <forward-path>) 和
  • 拒绝 ( 551 User not local; please try <forward-path>)

但它们的目的是邮件用户代理(MUA),不适用于其他 MTA。

RFC 5321, 3.4 转发以更正或更新地址解释这些具有能力通知发件人新地址。重点是我加的。

因此,实施者必须仔细评估 RFC 821 第 3.2 节中描述的“转发”机制,尤其是RCPT 的251(更正目的地)和551回复代码,并且,如果这些代码可用,则必须由配置系统的人仔细评估(另见第 7.4 节)。

尤其:

  • 服务器在知晓地址变更时可以转发消息。当它们这样做时,它们可以提供带有代码的地址更新信息251,也可以“默默”转发并返回代码250。但是,如果251使用代码,他们不能假设客户端会实际更新地址信息,甚至将该信息返回给用户。

交替,

  • 当邮件无法准确按照地址投递时,服务器可以拒绝邮件或将其作为无法投递的邮件退回。在这样做时,它们可以提供带有代码的地址更新信息551 ,或者可以使用代码拒绝邮件550,但不含地址特定信息。但是,如果551使用代码,他们不能假设客户端会实际更新地址信息,甚至将该信息返回给用户。

实际情况是,MUA 不会根据这些状态代码来更新电子邮件地址,可能是因为很难证明其真实性。我也没有看到这些响应代码在任何地方被广泛使用。

还有自动电子邮件地址更新的实际问题,以及转发:

  • 如果用户因为旧地址收到大量垃圾邮件而更改了地址,则披露新的联系信息是不明智的。这适用于个人电子邮件地址。

  • 对于商业电子邮件地址,地址更改的可能原因是用户从另一个雇主那里获得了新工作。

    • 区分电子邮件是发给此人还是发给其在公司中的前职位存在问题。需要发布两个新地址,而这些错误代码确实无法做到这一点,因为如果没有人为决定,自动更新是不可能的。

    • 原雇主甚至不一定知道新地址。此外,向客户推荐这个新地址可能并不明智,因为这可能会让他们转向竞争对手。

    • 通常,如果电子邮件被退回,发件人就会断定该人不再在那里工作550 mailbox unavailable。然后,他们会在 Google 上搜索适合其联系人的地址。

如果要区分从未存在过的邮箱和曾经存在但已被删除的邮箱,可以使用例如RFC 3463扩展状态代码X.1.6

X.1.6 目标邮箱已移动,无转发地址

提供的邮箱地址曾经有效,但该地址不再接受邮件。此代码仅在永久性故障时有用。

最后,正如RFC 5321, 2.3.7

回复的一般形式是数字完成代码(表示失败或成功),后面通常跟着一个文本字符串。代码供程序使用,文本通常供人类用户使用。

添加一个人类可读的解释是明智的,例如

550 5.1.6 Joe Bloggs has retired. See example.com/contact for a new representative.

相关内容