Мне нужно программно проверить электронную почту. Я использую этот код:Python: проверьте почту с smtplib и обработайте ошибки
resolver = dns.resolver.Resolver()
resolver.timeout = 3
resolver.lifetime = 3
mx_records = resolver.query(domain, 'MX')
for mxRecord in mx_records:
mxRecord = str(mxRecord.exchange)
host = socket.gethostname()
server = smtplib.SMTP(timeout=30)
server.set_debuglevel(0)
addressToVerify = var0
server.connect(mxRecord)
server.helo(host)
server.mail('[email protected]')
code, message = server.rcpt(str(addressToVerify))
server.quit()
res_email = 'Not Found'
if code == 250:
result = 'Success'
else:
print "doesn't exist"
Я получаю сообщение об ошибке, когда я запускаю этот код:
Connection unexpectedly closed
Connection unexpectedly closed: [Errno 10054]
[Errno 10061]
Я попытался изменить значения тайм-аут, но это не помогло. Затем я попытался указать порт в smtplib.SMTP()
, но указал 587
, и это также не решило проблему.
Как я могу решить эту проблему?
Вы хотите отправить или получить от известного сервера, для которого вы являетесь законным пользователем? –
@BillBell Мне нужно только проверить адрес электронной почты –
SMTP - это протокол отправки. Вам нужно либо poplib, либо imaplib в Python, в зависимости от того, является ли ваша электронная почта POP3 или некоторым вариантом IMAP. –