Add merge_headers option for Amazon SES

Add new `merge_headers` message option 
for per-recipient headers with template sends. 

* Support in base backend
* Implement in Amazon SES backend
  (Requires boto3 >= 1.34.98.)

---------

Co-authored-by: Mike Edmunds <medmunds@gmail.com>
This commit is contained in:
Rodrigo Nicolas Carreras
2024-05-21 15:55:29 -03:00
committed by GitHub
parent 4c62f7bee0
commit 33f680686b
6 changed files with 118 additions and 5 deletions

View File

@@ -286,6 +286,7 @@ class BasePayload:
("template_id", last, force_non_lazy),
("merge_data", merge_dicts_one_level, force_non_lazy_dict),
("merge_global_data", merge_dicts_shallow, force_non_lazy_dict),
("merge_headers", None, None),
("merge_metadata", merge_dicts_one_level, force_non_lazy_dict),
("esp_extra", merge_dicts_deep, force_non_lazy_dict),
)
@@ -293,7 +294,7 @@ class BasePayload:
# If any of these attrs are set on a message, treat the message
# as a batch send (separate message for each `to` recipient):
batch_attrs = ("merge_data", "merge_metadata")
batch_attrs = ("merge_data", "merge_headers", "merge_metadata")
def __init__(self, message, defaults, backend):
self.message = message
@@ -617,6 +618,9 @@ class BasePayload:
def set_merge_data(self, merge_data):
self.unsupported_feature("merge_data")
def set_merge_headers(self, merge_headers):
self.unsupported_feature("merge_headers")
def set_merge_global_data(self, merge_global_data):
self.unsupported_feature("merge_global_data")