我试着编写一些代码,从给定的电子邮件中获取MX服务器,然后连接到它并打印欢迎消息。关键是我的程序并不总是有效的。如果我在几台计算机上进行尝试,例如在我的计算机上,程序将在“s.connect()”阶段停止运行。再举个例子,在我朋友的电脑上,这个程序运行良好。 我尝试使用“python mx.py”来执行它example@gmail.com".
import sys
import socket
import dns.resolver
import re
email_count = len(sys.argv)
for i in range(1, email_count):
email = sys.argv[i]
if not re.match(r"^[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*$", email):
print(email, "is not valid e-mail.")
continue
print(email, "is valid e-mail.")
domain = email.rsplit('@', 1)[-1]
for x in dns.resolver.query(domain, 'MX'):
host_name = str(x.exchange)
host = socket.gethostbyname(host_name)
port = 25
address = (host, port)
print("\nHost:", host_name, "IP:", host)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(address)
msg = s.recv(1024)
s.close()
print("--begin of server output--\n")
print(msg.decode('ascii'))
print("--end of server output--\n")
先谢谢你
目前没有回答
相关问题 更多 >
编程相关推荐