mirror of https://github.com/django/django.git
Fixed #11144 -- When a to/from/cc header contains unicode, make sure the email addresses are parsed correctly (especially with regards to commas). Thanks to rmt for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11719 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
b59aa81d68
commit
dd5d7622a5
|
@ -7,7 +7,7 @@ from email.MIMEText import MIMEText
|
|||
from email.MIMEMultipart import MIMEMultipart
|
||||
from email.MIMEBase import MIMEBase
|
||||
from email.Header import Header
|
||||
from email.Utils import formatdate, parseaddr, formataddr
|
||||
from email.Utils import formatdate, getaddresses, formataddr
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.mail.utils import DNS_NAME
|
||||
|
@ -64,8 +64,7 @@ def forbid_multi_line_headers(name, val):
|
|||
except UnicodeEncodeError:
|
||||
if name.lower() in ('to', 'from', 'cc'):
|
||||
result = []
|
||||
for item in val.split(', '):
|
||||
nm, addr = parseaddr(item)
|
||||
for nm, addr in getaddresses((val,)):
|
||||
nm = str(Header(nm, settings.DEFAULT_CHARSET))
|
||||
result.append(formataddr((nm, str(addr))))
|
||||
val = ', '.join(result)
|
||||
|
|
|
@ -101,6 +101,17 @@ BadHeaderError: Header values can't contain newlines (got u'Subject\nInjection T
|
|||
>>> message['From']
|
||||
'from@example.com'
|
||||
|
||||
# Regression for #11144 - When a to/from/cc header contains unicode,
|
||||
# make sure the email addresses are parsed correctly (especially
|
||||
# with regards to commas)
|
||||
>>> email = EmailMessage('Subject', 'Content', 'from@example.com', ['"Firstname Sürname" <to@example.com>','other@example.com'])
|
||||
>>> email.message()['To']
|
||||
'=?utf-8?q?Firstname_S=C3=BCrname?= <to@example.com>, other@example.com'
|
||||
|
||||
>>> email = EmailMessage('Subject', 'Content', 'from@example.com', ['"Sürname, Firstname" <to@example.com>','other@example.com'])
|
||||
>>> email.message()['To']
|
||||
'=?utf-8?q?S=C3=BCrname=2C_Firstname?= <to@example.com>, other@example.com'
|
||||
|
||||
# Handle attachments within an multipart/alternative mail correctly (#9367)
|
||||
# (test is not as precise/clear as it could be w.r.t. email tree structure,
|
||||
# but it's good enough.)
|
||||
|
|
Loading…
Reference in New Issue