Я пытался написать какой-то код, который получает 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")
Заранее спасибо.