Fixed #17867 -- Made email validation pass with IDN domains
Thanks Pierre Matri for the report and the initial patch.
This commit is contained in:
parent
8cb9968a91
commit
273b96ef9d
|
@ -99,7 +99,7 @@ email_re = re.compile(
|
||||||
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom
|
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom
|
||||||
# quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5
|
# quoted-string, see also http://tools.ietf.org/html/rfc2822#section-3.2.5
|
||||||
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"'
|
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"'
|
||||||
r')@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+[A-Z]{2,6}\.?$)' # domain
|
r')@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)$)' # domain
|
||||||
r'|\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$', re.IGNORECASE) # literal form, ipv4 address (SMTP 4.1.3)
|
r'|\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$', re.IGNORECASE) # literal form, ipv4 address (SMTP 4.1.3)
|
||||||
validate_email = EmailValidator(email_re, _('Enter a valid email address.'), 'invalid')
|
validate_email = EmailValidator(email_re, _('Enter a valid email address.'), 'invalid')
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ TEST_DATA = (
|
||||||
(validate_email, 'email@[127.0.0.1]', None),
|
(validate_email, 'email@[127.0.0.1]', None),
|
||||||
(validate_email, 'example@valid-----hyphens.com', None),
|
(validate_email, 'example@valid-----hyphens.com', None),
|
||||||
(validate_email, 'example@valid-with-hyphens.com', None),
|
(validate_email, 'example@valid-with-hyphens.com', None),
|
||||||
|
(validate_email, 'test@domain.with.idn.tld.उदाहरण.परीक्षा', None),
|
||||||
|
|
||||||
(validate_email, None, ValidationError),
|
(validate_email, None, ValidationError),
|
||||||
(validate_email, '', ValidationError),
|
(validate_email, '', ValidationError),
|
||||||
|
|
Loading…
Reference in New Issue