Я пытался что-то, и это работало хорошо.
import dns.resolver, smtplib
MyEmail = "X@hotmail.com"
MyPassword = "XXX"
EmailToValidate = "X@Y.com"
record = dns.resolver.query(str.split(EmailToValidate, "@")[1], "MX")
mx = str(record[0].exchange)
server = smtplib.SMTP("smtp.live.com", 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(MyEmail, MyPassword)
server.helo("live.com")
server.connect(mx)
server.mail(MyEmail)
code, msg = server.rcpt(EmailToValidate)
print("Code: ", str(code), " message: ", msg)
пара (код, сообщение) будет (250, ОК), если электронная почта существует, и (550, Адрес отклонен), если электронная почта делаетне существует.
Я написал это на скорую руку, поэтому могут быть некоторые ненужные шаги.