最近,我删除了对应于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;。 所以,我很好奇:
答案 0 :(得分:1)
MX记录包含两个数据:优先级编号和邮件服务器的域名。试图传递邮件的人将获取邮件服务器的域名,使用它来查找IP地址,然后尝试连接到该IP地址。
192.168.3.3
不是有效的域名。使用它来尝试查找IP地址失败,因此传递邮件的尝试因缺少任何连接而失败(某些传递程序可能会“嘿,这个名称看起来很像IP地址,让我们给它一个去!“,但这不是你可以依赖的东西。”
您应该拥有的是包含名称的MX记录,然后是包含该IP地址的A记录
。