#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-адреса, могут быть серверы, у которых нет «учетных записей», и они просто хватают все, что приходит к ним.