mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-20 03:41:05 -05:00
Mandrill: drop Djrill compatibility
This commit is contained in:
@@ -1,9 +1,8 @@
|
||||
import warnings
|
||||
from datetime import datetime
|
||||
|
||||
from ..exceptions import AnymailRequestsAPIError, AnymailWarning
|
||||
from ..exceptions import AnymailRequestsAPIError
|
||||
from ..message import ANYMAIL_STATUSES, AnymailRecipientStatus
|
||||
from ..utils import combine, get_anymail_setting, last
|
||||
from ..utils import get_anymail_setting
|
||||
from .base_requests import AnymailRequestsBackend, RequestsPayload
|
||||
|
||||
|
||||
@@ -60,10 +59,6 @@ class EmailBackend(AnymailRequestsBackend):
|
||||
return recipient_status
|
||||
|
||||
|
||||
class DjrillDeprecationWarning(AnymailWarning, DeprecationWarning):
|
||||
"""Warning for features carried over from Djrill that will be removed soon"""
|
||||
|
||||
|
||||
def encode_date_for_mandrill(dt):
|
||||
"""Format a datetime for use as a Mandrill API date field
|
||||
|
||||
@@ -107,14 +102,9 @@ class MandrillPayload(RequestsPayload):
|
||||
}
|
||||
|
||||
def set_from_email(self, email):
|
||||
if getattr(self.message, "use_template_from", False):
|
||||
self.deprecation_warning(
|
||||
"message.use_template_from", "message.from_email = None"
|
||||
)
|
||||
else:
|
||||
self.data["message"]["from_email"] = email.addr_spec
|
||||
if email.display_name:
|
||||
self.data["message"]["from_name"] = email.display_name
|
||||
self.data["message"]["from_email"] = email.addr_spec
|
||||
if email.display_name:
|
||||
self.data["message"]["from_name"] = email.display_name
|
||||
|
||||
def add_recipient(self, recipient_type, email):
|
||||
assert recipient_type in ["to", "cc", "bcc"]
|
||||
@@ -125,12 +115,7 @@ class MandrillPayload(RequestsPayload):
|
||||
to_list.append(recipient_data)
|
||||
|
||||
def set_subject(self, subject):
|
||||
if getattr(self.message, "use_template_subject", False):
|
||||
self.deprecation_warning(
|
||||
"message.use_template_subject", "message.subject = None"
|
||||
)
|
||||
else:
|
||||
self.data["message"]["subject"] = subject
|
||||
self.data["message"]["subject"] = subject
|
||||
|
||||
def set_reply_to(self, emails):
|
||||
if emails:
|
||||
@@ -259,109 +244,3 @@ class MandrillPayload(RequestsPayload):
|
||||
self.data["message"].update(esp_extra["message"])
|
||||
except KeyError:
|
||||
pass
|
||||
|
||||
# Djrill deprecated message attrs
|
||||
|
||||
def deprecation_warning(self, feature, replacement=None):
|
||||
msg = "Djrill's `%s` will be removed in an upcoming Anymail release." % feature
|
||||
if replacement:
|
||||
msg += " Use `%s` instead." % replacement
|
||||
warnings.warn(msg, DjrillDeprecationWarning)
|
||||
|
||||
def deprecated_to_esp_extra(self, attr, in_message_dict=False):
|
||||
feature = "message.%s" % attr
|
||||
if in_message_dict:
|
||||
replacement = "message.esp_extra = {'message': {'%s': <value>}}" % attr
|
||||
else:
|
||||
replacement = "message.esp_extra = {'%s': <value>}" % attr
|
||||
self.deprecation_warning(feature, replacement)
|
||||
|
||||
esp_message_attrs = (
|
||||
("async", last, None),
|
||||
("ip_pool", last, None),
|
||||
("from_name", last, None), # overrides display name parsed from from_email
|
||||
("important", last, None),
|
||||
("auto_text", last, None),
|
||||
("auto_html", last, None),
|
||||
("inline_css", last, None),
|
||||
("url_strip_qs", last, None),
|
||||
("tracking_domain", last, None),
|
||||
("signing_domain", last, None),
|
||||
("return_path_domain", last, None),
|
||||
("merge_language", last, None),
|
||||
("preserve_recipients", last, None),
|
||||
("view_content_link", last, None),
|
||||
("subaccount", last, None),
|
||||
("google_analytics_domains", last, None),
|
||||
("google_analytics_campaign", last, None),
|
||||
("global_merge_vars", combine, None),
|
||||
("merge_vars", combine, None),
|
||||
("recipient_metadata", combine, None),
|
||||
("template_name", last, None),
|
||||
("template_content", combine, None),
|
||||
)
|
||||
|
||||
def set_async(self, is_async):
|
||||
self.deprecated_to_esp_extra("async")
|
||||
self.esp_extra["async"] = is_async
|
||||
|
||||
def set_ip_pool(self, ip_pool):
|
||||
self.deprecated_to_esp_extra("ip_pool")
|
||||
self.esp_extra["ip_pool"] = ip_pool
|
||||
|
||||
def set_global_merge_vars(self, global_merge_vars):
|
||||
self.deprecation_warning(
|
||||
"message.global_merge_vars", "message.merge_global_data"
|
||||
)
|
||||
self.set_merge_global_data(global_merge_vars)
|
||||
|
||||
def set_merge_vars(self, merge_vars):
|
||||
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)
|
||||
|
||||
def set_template_content(self, template_content):
|
||||
self.deprecated_to_esp_extra("template_content")
|
||||
self.esp_extra["template_content"] = template_content
|
||||
|
||||
def set_recipient_metadata(self, recipient_metadata):
|
||||
self.deprecated_to_esp_extra("recipient_metadata", in_message_dict=True)
|
||||
self.esp_extra.setdefault("message", {})[
|
||||
"recipient_metadata"
|
||||
] = recipient_metadata
|
||||
|
||||
# Set up simple set_<attr> functions for any missing esp_message_attrs attrs
|
||||
# (avoids dozens of simple `self.data["message"][<attr>] = value` functions)
|
||||
|
||||
@classmethod
|
||||
def define_message_attr_setters(cls):
|
||||
for attr, _, _ in cls.esp_message_attrs:
|
||||
setter_name = "set_%s" % attr
|
||||
try:
|
||||
getattr(cls, setter_name)
|
||||
except AttributeError:
|
||||
setter = cls.make_setter(attr, setter_name)
|
||||
setattr(cls, setter_name, setter)
|
||||
|
||||
@staticmethod
|
||||
def make_setter(attr, setter_name):
|
||||
# sure wish we could use functools.partial
|
||||
# to create instance methods (descriptors)
|
||||
def setter(self, value):
|
||||
self.deprecated_to_esp_extra(attr, in_message_dict=True)
|
||||
self.esp_extra.setdefault("message", {})[attr] = value
|
||||
|
||||
setter.__name__ = setter_name
|
||||
return setter
|
||||
|
||||
|
||||
MandrillPayload.define_message_attr_setters()
|
||||
|
||||
Reference in New Issue
Block a user