diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-11-14 10:39:58 +0100 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-11-14 10:43:33 +0100 |
| commit | 1620c27936718a87bbc8acce7886ef20fee2b3fe (patch) | |
| tree | 17bd256fba07e8cdb5c9aaa1480b96118345e704 /django | |
| parent | 1e34fd3c03e8f9a9e2b9be35488b8209178a4df0 (diff) | |
Fixed #19186 -- Fixed sending mail with unicode content on Python 3
Thanks alex_po for the report and Luke Plant for the analysis.
Diffstat (limited to 'django')
| -rw-r--r-- | django/core/mail/backends/smtp.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/django/core/mail/backends/smtp.py b/django/core/mail/backends/smtp.py index 18437c6282..b6f7f560ed 100644 --- a/django/core/mail/backends/smtp.py +++ b/django/core/mail/backends/smtp.py @@ -7,6 +7,7 @@ from django.conf import settings from django.core.mail.backends.base import BaseEmailBackend from django.core.mail.utils import DNS_NAME from django.core.mail.message import sanitize_address +from django.utils.encoding import force_bytes class EmailBackend(BaseEmailBackend): @@ -102,9 +103,11 @@ class EmailBackend(BaseEmailBackend): from_email = sanitize_address(email_message.from_email, email_message.encoding) recipients = [sanitize_address(addr, email_message.encoding) for addr in email_message.recipients()] + message = email_message.message() + charset = message.get_charset().get_output_charset() if message.get_charset() else 'utf-8' try: self.connection.sendmail(from_email, recipients, - email_message.message().as_string()) + force_bytes(message.as_string(), charset)) except: if not self.fail_silently: raise |
