python: правильный метод проверки наличия электронной почты

1

Я пытаюсь проверить, действительно ли электронное письмо существует, сначала разрешив его DNS, а затем проверьте, действительно ли письмо является действительным, используя приведенный ниже код:

    email = [email protected]
    domain = email.split("@")[-1]
    records = dns.resolver.query(domain, 'MX')
    mxRecord = records[0].exchange
    mxRecord = str(mxRecord)
    server.connect(mxRecord)
    server.helo(host)
    server.mail('[email protected]')
    code, message = server.rcpt(str(email))
    server.quit()
    if code == 250:
        print('valid email', message) 
    else:
        print('invalid email', message)

Это работает несколько раз, но когда я отправляю несколько запросов, я получаю сообщение вроде:

"5.7.1 Служба недоступна, клиентский хост [122.166.xxx.xxx] заблокирован с помощью Spamhaus. Чтобы запросить удаление из этого списка, см. Http://www.spamhaus.org/lookup.lasso (AS160312312) [BL2NAM02FT12312.eop-nam02. prod.protection.outlook.com]"

Я понимаю, что они пытаются заблокировать мой ip-адрес, поскольку он думает о его спаме.

Вот мои вопросы:

  • Есть ли правильный способ сделать этот тип проверки электронной почты, не получив помечен как спам? Получается ли это как спам, поскольку я запускаю код в своей системе и просто даю фиктивное значение для электронной почты, например

server.mail('[email protected] ')

  • Можно ли использовать некоторый прокси-сервер для этого? Мой учет требует 100 адресов электронной почты для проверки. Я вижу, что некоторые коммерческие api доступны для проверки подлинности электронной почты, но в настоящее время это невозможно для меня.
  • 0
    Вы смогли найти какое-либо решение?
Теги:
smtp
email-validation
spam-prevention
email-spam

1 ответ

1

Попробуй это.

pip install validate_email

from validate_email import validate_email
is_valid = validate_email('[email protected]', verify=True)

Посетите страницу https://pypi.org/project/validate_email/ для получения дополнительной информации.

  • 2
    Этот пакет также использует тот же метод. На самом деле я пытался с этим пакетом. это не работает вообще. github.com/syrusakbary/validate_email/issues/89 кто- то указал на то же самое
  • 0
    Этот пакет не работает; он также ничего не возвращает по таймауту или ошибке, что означает, что если что-то пойдет не так, нет никакого способа узнать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню