summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-11-14 10:39:58 +0100
committerClaude Paroz <claude@2xlibre.net>2012-11-14 10:43:33 +0100
commit1620c27936718a87bbc8acce7886ef20fee2b3fe (patch)
tree17bd256fba07e8cdb5c9aaa1480b96118345e704 /django
parent1e34fd3c03e8f9a9e2b9be35488b8209178a4df0 (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.py5
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