* removed unused "import socket" * changed broad "except" clause to more specific "except ImportError" * general PEP8 reformat * added "debug" option for logging server responses/errors * return None instead of True/False on several errors that may be temporary
This commit is contained in:
parent
9679958340
commit
cbba38aaeb
|
@ -20,6 +20,7 @@
|
|||
import re
|
||||
import smtplib
|
||||
import logging
|
||||
import socket
|
||||
|
||||
try:
|
||||
import DNS
|
||||
|
@ -95,6 +96,7 @@ def validate_email(email, check_mx=False, verify=False, debug=False):
|
|||
to be in use as of 2011."""
|
||||
if debug:
|
||||
logger = logging.getLogger('validate_email')
|
||||
logger.setLevel(logging.DEBUG)
|
||||
else:
|
||||
logger = None
|
||||
|
||||
|
@ -138,12 +140,42 @@ def validate_email(email, check_mx=False, verify=False, debug=False):
|
|||
return None
|
||||
except AssertionError:
|
||||
return False
|
||||
except ServerError:
|
||||
except (ServerError, socket.error) as e:
|
||||
if debug:
|
||||
logger.debug(u'ServerError exception raised.')
|
||||
logger.debug('ServerError or socket.error exception raised (%s).', e)
|
||||
return None
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
import time
|
||||
while True:
|
||||
email = raw_input('Enter email for validation: ')
|
||||
|
||||
mx = raw_input('Validate MX record? [yN] ')
|
||||
if mx.strip().lower() == 'y':
|
||||
mx = True
|
||||
else:
|
||||
mx = False
|
||||
|
||||
validate = raw_input('Try to contact server for address validation? [yN] ')
|
||||
if validate.strip().lower() == 'y':
|
||||
validate = True
|
||||
else:
|
||||
validate = False
|
||||
|
||||
logging.basicConfig()
|
||||
|
||||
result = validate_email(email, mx, validate, debug=True)
|
||||
if result:
|
||||
print "Valid!"
|
||||
elif result is None:
|
||||
print "I'm not sure."
|
||||
else:
|
||||
print "Invalid!"
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
# import sys
|
||||
|
||||
# sys.modules[__name__],sys.modules['validate_email_module'] = validate_email,sys.modules[__name__]
|
||||
|
|
Loading…
Reference in New Issue