Make generated message IDs for emails less likely to upset spam filters

This commit is contained in:
Hadley 2017-02-22 19:22:54 -08:00
parent 5846d4c1ad
commit 8e37f60686

View File

@ -18,17 +18,24 @@ def create_mail(from_, to, subject, text=None, attachment_data=None,
assert text or attachment_data assert text or attachment_data
from email.mime.multipart import MIMEMultipart from email.mime.multipart import MIMEMultipart
from email.utils import formatdate, make_msgid from email.utils import formatdate
from email import encoders from email import encoders
import uuid
outer = MIMEMultipart() outer = MIMEMultipart()
outer['Subject'] = subject outer['Subject'] = subject
outer['To'] = to outer['To'] = to
outer['From'] = from_ outer['From'] = from_
outer['Date'] = formatdate(localtime=True) outer['Date'] = formatdate(localtime=True)
outer['Message-Id'] = make_msgid()
outer.preamble = 'You will not see this in a MIME-aware mail reader.\n' outer.preamble = 'You will not see this in a MIME-aware mail reader.\n'
# generate a Message-Id for this email
msgid_domain = from_.partition("@")[2]
if not msgid_domain:
# from address didn't provide a domain, let's make a best guess
msgid_domain = safe_localhost()
outer['Message-Id'] = "<{0}@{1}>".format(uuid.uuid4(), msgid_domain)
if text is not None: if text is not None:
from email.mime.text import MIMEText from email.mime.text import MIMEText
if isbytestring(text): if isbytestring(text):