Заблокировано Spamhaus при попытке проверить электронную почту с помощью Python

Ali Alhajji спросил: 12 мая 2018 в 03:43 в: python

Я пытаюсь проверить, существует ли письмо или нет с помощью smtplib Python

Это то, что я сделал:

s = smtplib.SMTP()
s.connect(mxRecord) 
s.mail('my@email.com') //Here the error shows up

Ошибка: Клиент host [.. .] заблокирован с помощью Spamhaus. Чтобы запросить удаление из этого списка, см. Http://www.spamhaus.org/lookup.lasso (S3130)

1 ответ

Есть решение
Ali Alhajji ответил: 12 мая 2018 в 08:45

Я пробовал что-то, и он работал хорошо.

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, Отклонено адреса ), если письмо не существует.

Я написал это в спешке, поэтому могут возникнуть некоторые ненужные шаги.