mirror of
https://github.com/aljazceru/validate_email.git
synced 2025-12-19 23:14:20 +01:00
* 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:
@@ -20,6 +20,7 @@
|
|||||||
import re
|
import re
|
||||||
import smtplib
|
import smtplib
|
||||||
import logging
|
import logging
|
||||||
|
import socket
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import DNS
|
import DNS
|
||||||
@@ -95,6 +96,7 @@ def validate_email(email, check_mx=False, verify=False, debug=False):
|
|||||||
to be in use as of 2011."""
|
to be in use as of 2011."""
|
||||||
if debug:
|
if debug:
|
||||||
logger = logging.getLogger('validate_email')
|
logger = logging.getLogger('validate_email')
|
||||||
|
logger.setLevel(logging.DEBUG)
|
||||||
else:
|
else:
|
||||||
logger = None
|
logger = None
|
||||||
|
|
||||||
@@ -138,12 +140,42 @@ def validate_email(email, check_mx=False, verify=False, debug=False):
|
|||||||
return None
|
return None
|
||||||
except AssertionError:
|
except AssertionError:
|
||||||
return False
|
return False
|
||||||
except ServerError:
|
except (ServerError, socket.error) as e:
|
||||||
if debug:
|
if debug:
|
||||||
logger.debug(u'ServerError exception raised.')
|
logger.debug('ServerError or socket.error exception raised (%s).', e)
|
||||||
return None
|
return None
|
||||||
return True
|
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
|
# import sys
|
||||||
|
|
||||||
# sys.modules[__name__],sys.modules['validate_email_module'] = validate_email,sys.modules[__name__]
|
# sys.modules[__name__],sys.modules['validate_email_module'] = validate_email,sys.modules[__name__]
|
||||||
|
|||||||
Reference in New Issue
Block a user