Skip to main content

RFC 2822 - style email address validation for Python

Project description

This module provides a single method, valid_email_address(), which returns

True or False to indicate whether a given address is valid according to the ‘addr-spec’ part of the specification given in [RFC 2822] (http://www.ietf.org/rfc/rfc2822.txt). Ideally, we would like to find this in some other library, already thoroughly tested and well- maintained. The standard Python library email.utils contains a parse_addr() function, but it is not sufficient to detect many malformed addresses.

This implementation aims to be faithful to the RFC, with the exception of a circular definition (see comments inline), and with the omission of the pattern components marked as “obsolete”.

Yes, all this really does is build a big regular expression. But it builds it in nice pieces that correspond to the RFC, and there’s a big bunch of unit tests that try to ensure each little piece of the regexp works as intended. (See test_email_validation.py.)

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page