From 964b98a04377b88745ee0d709b102570b62e2ebf Mon Sep 17 00:00:00 2001 From: Dominique Hazael-Massieux Date: Thu, 17 Jul 2025 11:19:16 +0200 Subject: [PATCH] Add support for exotic email addresses close #156 --- src/feedvalidator/validators.py | 2 +- .../rss20/element-channel-item-author/valid_email_addresses.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/feedvalidator/validators.py b/src/feedvalidator/validators.py index 60aad2f2..ffa8ea83 100644 --- a/src/feedvalidator/validators.py +++ b/src/feedvalidator/validators.py @@ -359,7 +359,7 @@ def prevalidate(self): # class addr_spec(text): domain_re = r'''(([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([A-Z0-9\-]+\.)+))([A-Z0-9][-A-Z0-9]*)''' - email_re = re.compile("([A-Z0-9_\\-\\+\\.\']+)@" + domain_re + "$", re.I) + email_re = re.compile("([A-Z0-9_\\-\\+\\.\'\\!\\#\\$\\%\\&\\*\\/\\=\\?\\^_`\\{\\|\\}~]+)@" + domain_re + "$", re.I) simple_email_re = re.compile(r'^[\w._%+-]+@[A-Za-z][\w.-]+$') message = InvalidAddrSpec def validate(self, value=None): diff --git a/testcases/rss20/element-channel-item-author/valid_email_addresses.xml b/testcases/rss20/element-channel-item-author/valid_email_addresses.xml index 1cde8635..5718a6b6 100644 --- a/testcases/rss20/element-channel-item-author/valid_email_addresses.xml +++ b/testcases/rss20/element-channel-item-author/valid_email_addresses.xml @@ -12,5 +12,6 @@ user@example.com P.O'Neill@example.ie + ~@example.ie