Code reference › domain › mail

class

DeliveryMessage

pretalx.mail.domain.smtp.DeliveryMessage source

Prevent rewrapping or rewriting of line endings in transit.

Inherited attributes 2
content_subtype'plain'EmailMessage
encodingNoneEmailMessage

Methods 8

Defined here

message(*, policy=EmailPolicy())source

on pretalx.mail.domain.smtp.DeliveryMessage source

def message(self, *, policy=email_policy.default):
    return super().message(
        policy=policy.clone(content_manager=_QuotedPrintableTextManager())
    )

on django.core.mail.EmailMessage

def message(self, *, policy=email.policy.default):
    msg = email.message.EmailMessage(policy=policy)
    self._add_bodies(msg)
    self._add_attachments(msg)

    msg["Subject"] = str(self.subject)
    msg["From"] = str(self.extra_headers.get("From", self.from_email))
    self._set_list_header_if_not_empty(msg, "To", self.to)
    self._set_list_header_if_not_empty(msg, "Cc", self.cc)
    self._set_list_header_if_not_empty(msg, "Reply-To", self.reply_to)

    # Email header names are case-insensitive (RFC 2045), so we have to
    # accommodate that when doing comparisons.
    header_names = [key.lower() for key in self.extra_headers]
    if "date" not in header_names:
        if settings.EMAIL_USE_LOCALTIME:
            tz = get_current_timezone()
        else:
            tz = timezone.utc
        msg["Date"] = datetime.now(tz)
    if "message-id" not in header_names:
        # Use cached DNS_NAME for performance
        msg["Message-ID"] = make_msgid(domain=DNS_NAME)
    for name, value in self.extra_headers.items():
        header = name.lower()
        if header == "bcc":
            raise ValueError(
                'Bcc is not a valid email header. Use the "bcc" '
                "argument to specify blind carbon copy recipients."
            )
        # Avoid headers handled above.
        if header not in {"from", "to", "cc", "reply-to"}:
            msg[name] = force_str(value, strings_only=True)
    self._idna_encode_address_header_domains(msg)
    return msg

From EmailMultiAlternatives django.core.mail.message

Standard Django API, unchanged — attach_alternative(), body_contains(), __init__().

From EmailMessage django.core.mail.message

Standard Django API, unchanged — attach(), attach_file(), recipients() and 1 more.