MX记录
MX(Mail Exchanger)记录 是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
这种记录用来说明负责接受指定域名的[邮件 Email]的邮件服务器是哪一个。仅用于SMTP服务转发邮件的时候。当SMTP服务器需要向外转发 name@Domain.com 的邮件的时候。首先会像 DNS 查询类行为MX ,名称为 Domain.Com 的记录。如果没有MX记录则会使用A类型再查询一次。所以MX记录在一定程度上是可以使用 A 记录替代的。
MX 记录的结果比上面两个稍微复杂一些,它包含一个邮件服务器的域名和一个邮件服务器的优先级,如果你的域名使用多个SMTP服务器接受邮件的话,你可以使用多条 MX 记录指出所有的邮件的服务器,通过优先级参数配置那一台服务作为首选服务器。一般情况下邮件会发给优先级最高的服务器(数值最小的),如果该服务器不能连通,则转到下一个优先级的服务器。想通优先级的服务器的顺序可以由“ 轮换 ”机制决定。
一般情况下,即使你的其他服务器和邮件服务区使用相同的 IP 地址也建议使用 MX 记录来表示邮件服务器。相对于简单的A记录来说, MX记录的优先级可以控制,另外你保持了邮件服务和其他服务的独立性。
只有主机名能否建邮件系统?[ ]
完全可以。假设你的邮件服务器的主机名是 mail.mydomain.com,就是说在internet上mail.mydomain.com解析到你的 邮件服务器IP地址。你可以在你的邮件系统中建立一个叫 mail.mydomain.com的域,你的email格式为 user1@mail.mydomain.com, 其它邮件系统可以发信到你的服务器,使用动态域名指向的也是一样。如果你有一个静态IP地址,你甚至可以建一个一IP地址为结尾的邮件系统。还有一种情况你的域名直接指向你的邮件服务器,就是说在internet上mydomain.com解析到你的邮件服务器,这时你建一个mydomain.com的域,你的email格式为 user1@mydomain.com
主机名不管是几级域名,只要有DNS解析到正确的ip,有无mx记录,都可以建立邮件服务器,在smtp协议中,当需要向远程(remote)发信(user@zzbaike.com or user@host.zzbaike.com)时,首先向dns server查询@后面的部分的MX记录(也许你会说,user@host.zzbaike.com 中,@后面部分明显是个主机,为什么去查它的MX记录?这只是人的主观认识,不一定正确,不通过dns体系,你无法确定host.zzbaike.com是一个子域还是一台主机。),如果查到有MX记录,可能有多个,那么smtpd向其中优先级最高的发投递请求,如果失败,转向优先级次一级的mx主机投递(在这里mx记录起了容错的作用);如果对@后面部分的查询得不到mx记录,那么把@后面的部分当作主机,查询其ip地址,直接投递。
为什么你的域没有mx记录也能投递?只是因为@zzbaike.com 在dns里对应的ip地址刚好是你的邮件服务器的地址。MX记录是dns体系的一个标准部分,即使你目前的情况下,不设置mx记录也能工作,为了符合标准,还是建议你把mx记录补上。
检查MX记录是否存在的方法[ ]
进行DNS查询的一个非常有用的工具是nslookup,可以使用它来查询DNS中的各种数据。可以在Windows的命令行下直接运行nslookup进入一个交互模式,在这里能查询各种类型的DNS数据。
DNS的名字解析数据可以有各种不同的类型,有设置这个zone的参数的SOA类型数据,有设置名字对应的IP地址的A类型数据,有设置邮件交换的MX类型数据。这些不同类型的数据均可以通过nslookup的交互模式来查询,在查询过程中可以使用 set type命令设置相应的查询类型。