mirror of
https://github.com/aljazceru/validate_email.git
synced 2025-12-19 23:14:20 +01:00
Fixed #17 - Added timeout option for smtp connections.
This commit is contained in:
@@ -95,7 +95,7 @@ def get_mx_ip(hostname):
|
||||
return MX_DNS_CACHE[hostname]
|
||||
|
||||
|
||||
def validate_email(email, check_mx=False, verify=False, debug=False):
|
||||
def validate_email(email, check_mx=False, verify=False, debug=False, smtp_timeout=10):
|
||||
"""Indicate whether the given string is a valid email address
|
||||
according to the 'addr-spec' portion of RFC 2822 (see section
|
||||
3.4.1). Parts of the spec that are marked obsolete are *not*
|
||||
@@ -121,7 +121,7 @@ def validate_email(email, check_mx=False, verify=False, debug=False):
|
||||
mx_hosts = get_mx_ip(hostname)
|
||||
for mx in mx_hosts:
|
||||
try:
|
||||
smtp = smtplib.SMTP()
|
||||
smtp = smtplib.SMTP(timeout=smtp_timeout)
|
||||
smtp.connect(mx[1])
|
||||
if not verify:
|
||||
smtp.quit()
|
||||
@@ -174,7 +174,7 @@ if __name__ == "__main__":
|
||||
|
||||
logging.basicConfig()
|
||||
|
||||
result = validate_email(email, mx, validate, debug=True)
|
||||
result = validate_email(email, mx, validate, debug=True, smtp_timeout=1)
|
||||
if result:
|
||||
print "Valid!"
|
||||
elif result is None:
|
||||
|
||||
Reference in New Issue
Block a user