| 1 |
Index: django/core/mail.py |
|---|
| 2 |
=================================================================== |
|---|
| 3 |
--- django/core/mail.py (révision 6526) |
|---|
| 4 |
+++ django/core/mail.py (copie de travail) |
|---|
| 5 |
@@ -72,18 +72,15 @@ |
|---|
| 6 |
"Forbids multi-line headers, to prevent header injection." |
|---|
| 7 |
if '\n' in val or '\r' in val: |
|---|
| 8 |
raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) |
|---|
| 9 |
- try: |
|---|
| 10 |
- val = str(force_unicode(val)) |
|---|
| 11 |
- except UnicodeEncodeError: |
|---|
| 12 |
- if name.lower() in ('to', 'from', 'cc'): |
|---|
| 13 |
- result = [] |
|---|
| 14 |
- for item in val.split(', '): |
|---|
| 15 |
- nm, addr = parseaddr(item) |
|---|
| 16 |
- nm = str(Header(nm, settings.DEFAULT_CHARSET)) |
|---|
| 17 |
- result.append(formataddr((nm, str(addr)))) |
|---|
| 18 |
- val = ', '.join(result) |
|---|
| 19 |
- else: |
|---|
| 20 |
- val = Header(force_unicode(val), settings.DEFAULT_CHARSET) |
|---|
| 21 |
+ if name.lower() in ('to', 'from', 'cc'): |
|---|
| 22 |
+ result = [] |
|---|
| 23 |
+ for item in val.split(', '): |
|---|
| 24 |
+ nm, addr = parseaddr(item) |
|---|
| 25 |
+ nm = str(Header(nm, settings.DEFAULT_CHARSET)) |
|---|
| 26 |
+ result.append(formataddr((nm, str(addr)))) |
|---|
| 27 |
+ val = ', '.join(result) |
|---|
| 28 |
+ else: |
|---|
| 29 |
+ val = Header(force_unicode(val), settings.DEFAULT_CHARSET) |
|---|
| 30 |
MIMEText.__setitem__(self, name, val) |
|---|
| 31 |
|
|---|
| 32 |
class SafeMIMEMultipart(MIMEMultipart): |
|---|
| 33 |
@@ -91,18 +88,15 @@ |
|---|
| 34 |
"Forbids multi-line headers, to prevent header injection." |
|---|
| 35 |
if '\n' in val or '\r' in val: |
|---|
| 36 |
raise BadHeaderError, "Header values can't contain newlines (got %r for header %r)" % (val, name) |
|---|
| 37 |
- try: |
|---|
| 38 |
- val = str(force_unicode(val)) |
|---|
| 39 |
- except UnicodeEncodeError: |
|---|
| 40 |
- if name.lower() in ('to', 'from', 'cc'): |
|---|
| 41 |
- result = [] |
|---|
| 42 |
- for item in val.split(', '): |
|---|
| 43 |
- nm, addr = parseaddr(item) |
|---|
| 44 |
- nm = str(Header(nm, settings.DEFAULT_CHARSET)) |
|---|
| 45 |
- result.append(formataddr((nm, str(addr)))) |
|---|
| 46 |
- val = ', '.join(result) |
|---|
| 47 |
- else: |
|---|
| 48 |
- val = Header(force_unicode(val), settings.DEFAULT_CHARSET) |
|---|
| 49 |
+ if name.lower() in ('to', 'from', 'cc'): |
|---|
| 50 |
+ result = [] |
|---|
| 51 |
+ for item in val.split(', '): |
|---|
| 52 |
+ nm, addr = parseaddr(item) |
|---|
| 53 |
+ nm = str(Header(nm, settings.DEFAULT_CHARSET)) |
|---|
| 54 |
+ result.append(formataddr((nm, str(addr)))) |
|---|
| 55 |
+ val = ', '.join(result) |
|---|
| 56 |
+ else: |
|---|
| 57 |
+ val = Header(force_unicode(val), settings.DEFAULT_CHARSET) |
|---|
| 58 |
MIMEMultipart.__setitem__(self, name, val) |
|---|
| 59 |
|
|---|
| 60 |
class SMTPConnection(object): |
|---|