Simple, robust email validation
pyIsEmail is a no-nonsense approach for checking whether that user-supplied email address could be real. Sick of not being able to use email address tagging to sort through your Bacn? We can fix that.
Regular expressions are cheap to write, but often require maintenance when new top-level domains come out or don't conform to email addressing features that come back into vogue. pyIsEmail allows you to validate an email address -- and even check the domain, if you wish -- with one simple call, making your code more readable and faster to write. When you want to know why an email address doesn't validate, we even provide you with a diagnosis.
Install from PyPI using pip, a package manager for Python.
$ pip install pyIsEmail
Don't have pip installed? Try installing it, by running this from the command line:
$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
Or, you can download the source code (zip) for pyIsEmail
, and
then run:
$ python setup.py install
You may need to run the above commands with sudo
.
For the simplest usage, import and use the is_email
function:
from pyisemail import is_email
address = "test@example.com"
bool_result = is_email(address)
detailed_result = is_email(address, diagnose=True)
You can also check whether the domain used in the email is a valid domain and whether or not it has a valid MX record:
from pyisemail import is_email
address = "test@example.com"
bool_result_with_dns = is_email(address, check_dns=True)
detailed_result_with_dns = is_email(address, check_dns=True, diagnose=True)
These are primary indicators of whether an email address can even be issued at that domain. However, a valid response here is not a guarantee that the email exists, merely that is can exist.
In addition to the base is_email
functionality, you can also use the
validators by themselves. Check the validator source code to see how this works.
Want to get rid of pyIsEmail? Did you install with pip? Here you go:
$ pip uninstall pyIsEmail
The base ParserValidator
is based off of Dominic Sayers'
is_email script. I wanted the functionality in Python, so I ported
it from the original PHP.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)This library aims to adhere to Semantic Versioning 2.0.0. Violations of this scheme should be reported as bugs.
Copyright (c) 2013 Michael Herold. See LICENSE for details.