Use email.policy.default in Python 3 implementation

Improves standards compatibility and utf-8 handling
in Python 3.3-3.8. (email.policy.default becomes the
default in Python 3.9.)
This commit is contained in:
medmunds 2021-02-17 09:57:44 -08:00
parent 8f688e5e13
commit 28d9f00610

View File

@ -285,8 +285,11 @@ _smtp_send_python() {
try: try:
try: try:
from email.message import EmailMessage from email.message import EmailMessage
from email.policy import default as email_policy_default
except ImportError: except ImportError:
from email.mime.text import MIMEText as EmailMessage # Python 2 # Python 2 (or < 3.3)
from email.mime.text import MIMEText as EmailMessage
email_policy_default = None
from email.utils import formatdate as rfc2822_date from email.utils import formatdate as rfc2822_date
from smtplib import SMTP, SMTP_SSL, SMTPException from smtplib import SMTP, SMTP_SSL, SMTPException
from socket import error as SocketError from socket import error as SocketError
@ -311,7 +314,7 @@ subject="""$SMTP_SUBJECT"""
content="""$SMTP_CONTENT""" content="""$SMTP_CONTENT"""
try: try:
msg = EmailMessage() msg = EmailMessage(policy=email_policy_default)
msg.set_content(content) msg.set_content(content)
except (AttributeError, TypeError): except (AttributeError, TypeError):
# Python 2 MIMEText # Python 2 MIMEText