Есть ли в python какие-либо практические способы проверить, существует ли электронное письмо или нет. Я попробовал следующие коды. Но его возвращение ни к чему

#python #email #email-verification

#питон #Адрес электронной почты #проверка электронной почты

Вопрос:

Первый код, который я попробовал. Я просто хочу знать, существует ли данное электронное письмо или нет. Мне не нужен синтаксис регулярных выражений. Я хочу проверить, является ли почтовый идентификатор подлинным или нет . это все

 from validate_email import validate_email  is_valid = validate_email(  email_address='example@example.com',  check_format=True,  check_blacklist=True,  check_dns=True,  dns_timeout=10,  check_smtp=True,  smtp_timeout=10,  smtp_helo_host='myhostname',  smtp_from_address='example@example.com',  smtp_skip_tls=False,  smtp_tls_context=None,  smtp_debug=False)  print(is_valid)   

второй код Я просто хочу знать, существует ли данное электронное письмо или нет. Мне не нужен синтаксис регулярных выражений. Я хочу проверить, является ли почтовый идентификатор подлинным или нет . это все

 from validate_email_address import validate_email isExists = validate_email('mygmail@gmail.com', verify=True) print(isExists)  

Третий код Я просто хочу знать, существует ли данное электронное письмо или нет. Мне не нужен синтаксис регулярных выражений. Я хочу проверить, является ли почтовый идентификатор подлинным или нет . это все

 import re import smtplib import dns.resolver  # Address used for SMTP MAIL FROM command  fromAddress = 'mygmail@gmail.com'  # Simple Regex for syntax checking regex = '^[_a-z0-9-] (.[_a-z0-9-] )*@[a-z0-9-] (.[a-z0-9-] )*(.[a-z]{2,})


Комментарии:

1. Буквально невозможно проверить, существует ли вообще адрес электронной почты. Лучшее, что вы можете сделать, это отправить электронное письмо со случайным кодом и убедиться, что код получен. Почтовые серверы могут отвечать мусором на случайные IP-адреса, могут быть серверы, у которых нет "учетных записей", и они просто хватают все, что приходит к ним.

# Email address to verify inputAddress = 'mygmail@gmail.com' addressToVerify = str(inputAddress) # Syntax check match = re.match(regex, addressToVerify) if match == None: print('Bad Syntax') raise ValueError('Bad Syntax') # Get domain for DNS lookup splitAddress = addressToVerify.split('@') domain = str(splitAddress[1]) print('Domain:', domain) # MX record lookup records = dns.resolver.resolve(domain, 'MX') mxRecord = records[0].exchange mxRecord = str(mxRecord) # SMTP lib setup (use debug level for full output) server = smtplib.SMTP() server.set_debuglevel(1) # SMTP Conversation server.connect(mxRecord) server.helo(' ') ### server.local_hostname(Get local server hostname) server.mail(fromAddress) code, message = server.rcpt(str(addressToVerify)) server.quit() #print(code) #print(message) # Assume SMTP response 250 is success if code == 250: print('Success') else: print('Bad')

Комментарии:

1. Буквально невозможно проверить, существует ли вообще адрес электронной почты. Лучшее, что вы можете сделать, это отправить электронное письмо со случайным кодом и убедиться, что код получен. Почтовые серверы могут отвечать мусором на случайные IP-адреса, могут быть серверы, у которых нет «учетных записей», и они просто хватают все, что приходит к ним.