如果电子邮件未通过 MTA-STS 检查,则不得发送;寄件人会被告知投递失败吗?什么时候? 测试用例 C测试用例 B测试用例 A测试用例 Z奇怪的一个限制进一步的想法意见

问题描述

简短:

当即将发送的电子邮件未通过 MTA-STS 检查时,不得按设计发送; 发件人会被告知递送失败吗?什么时候?

详细和背景信息:

自定义域上实施 mta-sts 以强制使用 TLS 连接时,mta-sts.txt 策略文件(或不支持 TLS 连接的 smtp 服务器)的错误配置将导致电子邮件无法作为强制执行的策略将需要 TLS 连接来传送电子邮件

通过 TLS 报告,域持有者 - 而不是发件人 - 可以被告知任何问题,前提是 TLS 报告设置到不同的域或工具,通知地址与相关域不同。

我的问题是关于电子邮件的所有发件人。在策略文件中提到不正确的 mx 记录的测试用例中,没有发送电子邮件(如预期),但测试发件人没有接收有关递送问题的任何消息(尚未)。

这是预期的行为吗?还是会在几个小时后通知发件人?如果有,多少小时? - 我问是因为交付失败和 NDR(未交付报告)通常会立即返回。

如果用户拼错了电子邮件地址或接收服务器出现故障,发件人会被告知问题并可以采取措施。有时甚至宣布“交货延迟”;还没有失败,但也没有交付。

我的印象是,发件人没有被告知消息未送达,而是“悄悄地被黑化/丢弃”。需要明确的是:未传递消息是此测试用例中的预期行为。

规格:https://tools.ietf.org/html/rfc8461

解决方法

运行一些测试用例后,我经历了以下情况:

(这是由 Outlook.com smtp 服务器完成的。)

测试用例 C

  • MTA-STS:故意不正确,但在 mta-sts 文件中存在第三方 mx 服务器。
  • DNS:正确的 mx 服务器。

在 24 小时后通知发件人递送失败。

用我的当地语言解释了发生了什么;这里的信息亮点:

  1. 无法传递消息。
  2. 多次尝试交付。
  3. 但原因是无法连接到远程服务器。
  4. 建议通过电话联系收件人,要求收件人将错误通知邮政局长。
  5. 甚至有人提出这个问题很可能只能由邮政局长来解决。
  6. (提供了一个链接,但这并没有真正的帮助。此外,可以看到技术退回消息,其中包含技术字眼“MTA-STS 验证失败”)。

测试用例 B

  • MTA-STS:在 mta-sts 文件中正确和所需的 mx。
  • DNS:故意设置为不正确的 mx 服务器,尽管是现有服务器。

24 小时后,我收到一条错误消息。令人困惑的是该地址在目标域中不存在的消息状态。虽然这是真的,但它不应该走到这一步。但是,在查看技术部分时,Outlook 发送服务器提到“mta-sts 错误验证失败”。所以技术部分包含正确的 mta-sts 验证错误,但人类/用户可读部分只提到目标服务器中不存在目标地址。

我想如果地址不存在,任何 mta-sts 错误都“不太重要”向最终用户报告。建议用户重新输入并重新发送电子邮件,并验证收件人的地址(提到了电话)。 但是,即使用户按照说明进行操作,下一封电子邮件也不会发送,但这超出了本测试用例的范围。


测试用例 A

  • MTA-STS:更正 mta-sts 文件中的 mx。
  • DNS:假 MX 更正。

24 小时后,我收到一条错误消息。无法传递邮件的原因是无法解析收件人的域位置。 (不想要的结果,但合乎逻辑,mx 指的是什么。)

消息的技术部分提到“DNS 查询失败”。没有提到 mta-sts。


测试用例 Z(奇怪的一个)

  • MTA-STS:更正 mta-sts 文件中的 mx。
  • DNS:不正确但存在 mx 记录;引用正确 mx 服务器的相同 IP 的 cname(这应该无关紧要,因为 mta-sts 应该将 cert 与 cname 进行比较。)

结果,出乎意料:

  • 一封电子邮件在该 24 时间窗口之间的某个时间送达。
  • 一封电子邮件因 mta-sts 验证错误而失败。

网络服务器的临时停机可能是一个因素,尽管这无关紧要。 - 无法解释。


结论

如您所见,我花了一段时间才找到正确的测试用例。但是测试用例 C 描述了所需的行为。 是的,在 24 小时后将 Outlook.com 作为 smtp 服务器通知发件人。 用户会以清晰的语言收到通知。话虽如此,我确实对此处的时间安排有其他看法,如下所述。

限制

坚持事实:我没有使用尝试未加密连接的服务器执行测试用例。测试用例 C 将球放入收件人的邮局管理员场地,我很想知道在未加密尝试的情况下,球(“待办事项”)将放在哪里,因为收件人无法解决但必须解决由寄件人或寄件人的邮局负责人。

我也没有测试多个 smtp 服务器。

进一步的想法

话虽如此,发件人 SMTP 需要支持 MTA-STS 验证(如果我错了,请在评论中纠正我*),所以如果服务器太旧,它会尝试通过非加密连接,它很可能不支持 MTA-STS,因此它不会验证 MTA-STS 策略,只是简单地传递未受保护的电子邮件。 * 在这里找到确认,来自段落 "There is a standard...")

如果有人试图通过 dns-poisoning 重定向一些传入的电子邮件,现代 smtp 服务器将不会将电子邮件发送到错误的目的地。 因此,它可以防止恶行,而不是防止遗留问题。

意见

我认为 24​​ 小时的反馈延迟太长了。测试用例 C 报告了 24 小时窗口内的 11 次重试尝试。虽然我感谢系统没有放弃,但我认为至少通知他非定期交付可能符合发件人的利益。