File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed
Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change 22
33import copy
44import datetime
5+ import logging
6+ import re
57import smtplib
68import sys
79import textwrap
@@ -520,6 +522,7 @@ def is_valid_email(address):
520522 except ValidationError :
521523 return False
522524
525+ logger = logging .getLogger ('django' )
523526def get_email_addresses_from_text (text ):
524527 """
525528
@@ -531,5 +534,15 @@ def get_email_addresses_from_text(text):
531534 Returns a list of properly formatted email address strings.
532535
533536 """
534- return [ formataddr (e ) for e in getaddresses ([text , ]) ]
537+ def valid (email ):
538+ name , addr = email
539+ try :
540+ validate_email (addr )
541+ return True
542+ except ValidationError :
543+ logger .error (f'Bad data: get_email_addresses_from_text() got an invalid email address tuple: { email } , in "{ text } ".' )
544+ return False
545+ # whitespace normalization -- getaddresses doesn't do this
546+ text = re .sub (r'(?u)\s+' , ' ' , text )
547+ return [ formataddr (e ) for e in getaddresses ([text , ]) if valid (e ) ]
535548
You can’t perform that action at this time.
0 commit comments