DNS MX 记录有问题

Jas*_*son 6 domain-name-system email-server

我一直在读这个:http : //www.zytrax.com/books/dns/ch8/mx.html

对于 MX 记录,我已经通过绑定设置了我的名称服务器。这是我网站的区域文件:

$TTL 86400
@   IN  SOA     ns1 root (
        2           ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)
; Specify our two nameservers
        IN  NS      ns1
        IN  NS      ns2

; Nameserver resolve
ns1     IN  A       1.1.1.1
ns2     IN  A       2.2.2.2

; Mail server
        IN  MX 10   mail

; Hostnames
@       IN  A       2.2.2.2
www     IN  A       2.2.2.2
mail    IN  A       1.1.1.1
Run Code Online (Sandbox Code Playgroud)

我正在托管 postfix 和 dovecot。我无法远程接收电子邮件,我已将其范围缩小到我的 DNS 未对 MX 请求正确响应。

Dovecot 和 postfix 都托管在 1.1.1.1 上(我已经更改了服务器 IP)

更改我的配置并重新启动绑定后,

dig example.com MX @localhost 
Run Code Online (Sandbox Code Playgroud)

编辑:我试过mail.example.com 和example.com。两者都失败了。我已经为 example.com 更新了这个问题,因为我最初发布了 mail.example.com 的 dig (这是我的一个错误。不过它已经更新了。)

我收到的,

;; QUESTION SECTION:
;example.com.              IN      MX

;; AUTHORITY SECTION:
example.com.            86400   IN      SOA     ns1.example.com. root.example.com

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Thu Jul  3 15:29:40 2014
;; MSG SIZE  rcvd: 79
Run Code Online (Sandbox Code Playgroud)

编辑:以为我会包括其他一切正常。即 www.example.com

HBr*_*ijn 16

一个非常棘手的配置错误。通过以既不包含主机名、区域名称或@区域原点的简写的方式开始一行,就成为上述记录的延续。

ns2     IN  A       2.2.2.2
; Mail server
        IN  MX 10   mail.example.com.
Run Code Online (Sandbox Code Playgroud)

实际上是

ns2     IN  A       2.2.2.2
; Mail server
ns2     IN  MX 10   mail.example.com.
Run Code Online (Sandbox Code Playgroud)

而不是你想要的:

ns2     IN  A       2.2.2.2
; Mail server
example.com.      IN  MX 10   mail.example.com.
Run Code Online (Sandbox Code Playgroud)

或者你应该使用:

@      IN  MX 10   mail.example.com.    
Run Code Online (Sandbox Code Playgroud)