跳至内容

为什么我在 Route 53 中为 SMTP 服务器创建 MX 记录后,我的服务器无法接收电子邮件?

3 分钟阅读
0

我配置了邮件交换器记录(MX 记录),将电子邮件路由到我在 Amazon Route 53 中的简单邮件传输协议 (SMTP) 服务器。但是,我的服务器收不到电子邮件。

解决方法

查看您的公共托管区的资源记录集

验证您的 Route 53 公共托管区是否具有所需的资源记录集

将您的域注册商的名称服务器配置为使用 Route 53 名称服务器

如果您使用 Route 53 向其他域注册商提供 DNS 服务,请在 WHOIS 工具中查找您的域名。结果会显示您的域注册商和当前的权威名称服务器。要使用 WHOIS,请参阅 WHOIS 网站上的 WHOIS domain lookup(WHOIS 域查询)

**重要事项:**如果名称服务器与您的 Route 53 公共托管区名称服务器不匹配,则不会将您的 SMTP 服务器的 DNS 查询定向到 Route 53。

如果您的名称服务器与 Route 53 公共托管区名称服务器不匹配,请完成以下步骤:

  1. 在 WHOIS 实用程序的查询字段中输入您的注册商名称,然后选择 Registrar(注册商)选项以查找您的域注册商的联系信息。
    您可以运行以下 whois 命令:

    whois YOUR_DOMAIN_NAME | grep 'Name Server'

    **注意:**将 YOUR_DOMAIN_NAME 替换为您的域名。

  2. 要求您的域注册商更新名称服务器列表,以便您的域引用 Route 53 公共托管区中的名称服务器。

  3. 验证您之前的 DNS 服务在 TTL(生存时间)期间是否保留资源记录集。

等待名称服务器 TTL 期限到期,Route 53 才能响应 DNS 查询。有关详细信息,请参阅我更改了 DNS 设置,但设置尚未生效

检查 DNS MX 记录集是否存在问题

运行以下 Windows、Linux 或 macOS 命令,以检查域是否存在用于将电子邮件路由到您的 SMTP 服务器的 MX 记录

适用于 Linux 或 macOS 操作系统 (OS) 的命令:

dig DOMAIN_NAME MX

输出示例:

$ dig amazon.com MX
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61726
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon.com.                    IN      MX

;; ANSWER SECTION:
amazon.com.             300     IN      MX      5 amazon-smtp.amazon.com.
;; Query time: 1 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Wed Apr 14 06:21:43 UTC 2021
;; MSG SIZE  rcvd: 67

适用于 Windows 操作系统的命令:

nslookup -type=MX DOMAIN_NAME

输出示例:

$ nslookup -type=MX amazon.comServer:         10.10.0.2
Address:        10.10.0.2#53

Non-authoritative answer:
amazon.com      mail exchanger = 5 amazon-smtp.amazon.com.

然后,运行以下 Windows、Linux 或 macOS 命令以确认您可以解析 MX 记录主机名。

适用于 Linux 或 macOS 的命令:

dig MX_RECORD

输出示例:

$ dig amazon-smtp.amazon.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.amzn2.2 <<>> amazon-smtp.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64180
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;amazon-smtp.amazon.com.                IN      A

;; ANSWER SECTION:
amazon-smtp.amazon.com. 27      IN      A       52.94.124.7

;; Query time: 1 msec
;; SERVER: 10.10.0.2#53(10.10.0.2)
;; WHEN: Wed Apr 14 06:41:18 UTC 2021
;; MSG SIZE  rcvd: 67

适用于 Windows 操作系统的命令:

nslookup MX_RECORD

输出示例:

$ nslookup amazon-smtp.amazon.comServer:         10.10.0.2
Address:        10.10.0.2#53

Non-authoritative answer:
Name:   amazon-smtp.amazon.com
Address: 52.119.213.154

**注意:**对于 MX 记录,Route 53 使用与其他 DNS 提供商不同的语法。要有效地路由您的电子邮件,请在 Route 53 中创建根域 MX 记录时将记录集名称留空。此外,即使某些 DNS 提供商要求在 MX 记录集名称前加上 at (@) 字符,也不要添加 at (@) 字符或其他字符。

测试电子邮件交付

完成以下步骤:

  1. 运行以下命令,然后按 Enter

    telnet MAIL_SERVER_NAME_OR_IP MAIL_SERVER_PORT_NUMBER

    **注意:**将 MAIL_SERVER_NAME 替换为您的邮件服务器名称,将 IP MAIL_SERVER 替换为您的 IP 地址,将 PORT_NUMBER 替换为您的端口号。如果您出现拼写错误,请按 Enter 并重试该命令。如果在按下 Enter 后该命令不起作用,请关闭 telnet 会话并重新连接。

  2. 运行以下命令,然后按 Enter

    EHLO YOUR_MAIL_SERVER_FULLY_QUALIFIED_DOMAIN_NAME
    

    **注意:**将 YOUR_MAIL_SERVER_FULLY_QUALIFIED_DOMAIN_NAME 替换为您的邮件服务器域名。

  3. 运行以下命令,然后按 Enter

    mail from: your_name@yourdomainname

    **注意:**将 your_name@yourdomainname 替换为您的电子邮件地址。
    服务器发出 250 OK 的响应。

  4. 运行以下命令,然后按 Enter

    rcpt to: recipient@yourdomainname

    **注意:**将 recipient@yourdomainmame 替换为收件人的电子邮件地址。发件人和收件人可以使用相同的电子邮件地址。

    **重要事项:**如果服务器验证发件人和收件人的电子邮件地址,则服务器会发出 250 Accepted 的响应。

  5. 运行以下命令,然后按 Enter

    data
  6. 运行以下命令,然后按 Enter

    Subject: SPECIFY_SUBJECT_HERE
  7. 运行以下命令,然后按 Enter

    SPECIFY_MESSAGE_HERE
  8. 运行以下命令,然后按 Enter

    .

    服务器接受要传送的邮件,并发出 250 OK 的响应,以确认系统已发送电子邮件。

如果在验证 MX 记录配置后您的 SMTP 服务器仍然无法接收电子邮件,请联系您的电子邮件服务提供商。