1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #19186 -- Fixed sending mail with unicode content on Python 3

Thanks alex_po for the report and Luke Plant for the analysis.
This commit is contained in:
Claude Paroz
2012-11-14 10:39:58 +01:00
parent 1e34fd3c03
commit 1620c27936
2 changed files with 17 additions and 5 deletions

View File

@@ -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