mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 11:51:05 -05:00
Feature: Add envelope_sender
New EmailMessage attribute `envelope_sender` controls ESP's sender, sending domain, or return path where supported: * Mailgun: overrides SENDER_DOMAIN on individual message (domain portion only) * Mailjet: becomes `Sender` API param * Mandrill: becomes `return_path_domain` API param (domain portion only) * SparkPost: becomes `return_path` API param * Other ESPs: not believed to be supported Also support undocumented Django SMTP backend behavior, where envelope sender is given by `message.from_email` when `message.extra_headers["From"]` is set. Fixes #91.
This commit is contained in:
@@ -139,6 +139,10 @@ class MandrillPayload(RequestsPayload):
|
||||
"content": attachment.b64content
|
||||
})
|
||||
|
||||
def set_envelope_sender(self, email):
|
||||
# Only the domain is used
|
||||
self.data["message"]["return_path_domain"] = email.domain
|
||||
|
||||
def set_metadata(self, metadata):
|
||||
self.data["message"]["metadata"] = metadata
|
||||
|
||||
@@ -268,6 +272,10 @@ class MandrillPayload(RequestsPayload):
|
||||
self.deprecation_warning('message.merge_vars', 'message.merge_data')
|
||||
self.set_merge_data(merge_vars)
|
||||
|
||||
def set_return_path_domain(self, domain):
|
||||
self.deprecation_warning('message.return_path_domain', 'message.envelope_sender')
|
||||
self.esp_extra.setdefault('message', {})['return_path_domain'] = domain
|
||||
|
||||
def set_template_name(self, template_name):
|
||||
self.deprecation_warning('message.template_name', 'message.template_id')
|
||||
self.set_template_id(template_name)
|
||||
|
||||
Reference in New Issue
Block a user