我们是否需要DNS中的stmp服务器的A和MX记录

时间:2015-08-28 07:29:28

标签: dns

最近,我删除了对应于smtp服务器的DNS A记录。最初的DNS配置如下:

mail.demo.com    MX    192.168.3.3
mail.demo.com    A     192.168.3.3

删除MX记录后,我尝试使用Python脚本尝试连接到我的mail.demo.com。脚本如下所示:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import smtplib
from email.mime.text import MIMEText


def send_mail(to_list,sub):
    me = "demo<demo@localhost>"

    msg = MIMEText("")
    msg['Subject'] = sub
    msg['From'] = me
    msg['To'] = ";".join(to_list)

    try:
        s = smtplib.SMTP()
        s.connect("mail.demo.com")
        s.sendmail(me, to_list, msg.as_string())
        s.close()
        return True
    except Exception, e:
        print str(e)
        return False


if __name__ == '__main__':
    if send_mail(["jack@mail.demo.com"], "hello"):
        print "success"
    else:
        print "fail"

有些东西是错误的,带有关联主机的#34;没有地址&#34;。 所以,我很好奇:

  • 为什么我们需要A记录才能连接到mail.demo.com
  • 当我们实际使用MX记录时。

1 个答案:

答案 0 :(得分:1)

MX记录包含两个数据:优先级编号和邮件服务器的域名。试图传递邮件的人将获取邮件服务器的域名,使用它来查找IP地址,然后尝试连接到该IP地址。

192.168.3.3不是有效的域名。使用它来尝试查找IP地址失败,因此传递邮件的尝试因缺少任何连接而失败(某些传递程序可能会“嘿,这个名称看起来很像IP地址,让我们给它一个去!“,但这不是你可以依赖的东西。”

您应该拥有的是包含名称的MX记录,然后是包含该IP地址的A记录