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