如何排查 EC2 Windows 实例上的邮件服务器问题?

上次更新时间:2021 年 7 月 9 日

我无法通过 SMTP 从 Amazon Elastic Compute Cloud (Amazon EC2) 实例发送电子邮件。如何排查此问题?

简短描述

以下是通过 SMTP 从实例发送电子邮件时遇到问题的几个常见原因:

  • 默认端口 25、端口 587 或端口 465 上的安全组或网络访问控制列表(网络 ACL)阻止了 SMTP 流量。
    注意:默认情况下,所有 EC2 实例和 AWS Lambda 函数将在端口 25 (SMTP) 上阻止出站流量。要在端口 25 上发送出站流量,请申请取消此限制。有关更多信息,请参阅如何从 Amazon EC2 实例或 AWS Lambda 函数删除端口 25 上的限制?
  • 自动分配给实例的公有 IP 地址在重启后发生了变化。
  • 出站消息被标记为垃圾邮件。
  • 电子邮件没有发送到特定域。
  • 出站电子邮件延迟。
  • 能收到电子邮件,但无法发送。

解决方法

默认端口 25、端口 587 或端口 465 上的安全组或 NACL 阻止了 SMTP 流量

  1. 要验证流量是否被阻止,请使用 Test-NetConnection 或 telnet 实用程序检查 SMTP 端口上的连接。
  2. 如果 SMTP 端口上的流量被阻止,请确保以下配置正确:
    安全组出站(出口)规则必须允许流量通过 TCP 端口 25、587 或 465 到达 SMTP 服务器。
    网络 ACL 出站(出口)规则必须允许流量通过 TCP 端口 25、587 或 465 到达 SMTP 服务器。
    网络 ACL 入站(入口)规则必须允许来自 SMTP 服务器的流量通过 TCP 端口 1024-65535。
    Windows 实例上的防火墙和防病毒应用程序必须允许流量通过 TCP 端口 25、587 或 465 到达 SMTP 服务器。
    EC2 实例必须具有互联网连接。

自动分配给实例的公有 IP 地址在重启后发生了变化

每次重新启动或实例停止再启动后,公有 IP 地址都会发生变化。为避免这种情况,请确保给用作邮件服务器的实例分配弹性 IP 地址

出站消息被标记为垃圾邮件

如果缺少 DKIM 身份验证、SPF 记录或反向 DNS 记录集,则出站消息可能会被标记为垃圾邮件。最佳实践是设置这些记录,以帮助预防出站电子邮件被标记为垃圾邮件。有关反向 DNS 记录的更多信息,请参阅以下主题:

适用于 Amazon EC2 的弹性 IP 地址的可配置的反向 DNS

如何通过 PTR 记录启用 Route 53 的反向 DNS 功能?

如何排查 Route 53 中用于反向 DNS 的 PTR 记录问题?

电子邮件没有发送到特定域

如果您无法向特定域发送电子邮件,请执行以下操作:

  • 验证收件人域是否屏蔽了您的 IP 地址。
  • 确保电子邮件不要过大,以至于目的地无法接收。虽然您发送邮件时没有大小限制,但收件人接收邮件的大小可能有限制。标准电子邮件大小设置为 22 MB。

出站电子邮件延迟

如果您的电子邮件延迟,请执行以下操作:

  1. 验证延迟的电子邮件是否都是发送到一个特定的地址或域。
  2. 检查电子邮件服务器配置,确保没有进行任何更改。
  3. 验证服务器上的电子邮件队列是否缓慢,或者电子邮件是否已准时从服务器传出,但到达目的地的速度缓慢。
    如果电子邮件堆积在服务器上的队列中,请确保您的 SMTP 服务器没有性能问题。
    如果问题出在目的地,确保电子邮件不要过大,以至于目的地无法接收。虽然您发送邮件时没有大小限制,但收件人接收邮件的大小可能有限制。标准电子邮件大小设置为 22 MB。
  4. 使用电子邮件标头分析器工具分析消息标头,以查找诊断信息。

能收到电子邮件,但无法发送

如果没有配置传出 (SMTP) 服务器所需的身份验证,就会出现此问题。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?