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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user