@@ -565,6 +565,7 @@ class PMBatchMail(object):
565565 def __init__ (self , ** kwargs ):
566566 self .__api_key = None
567567 self .__messages = []
568+ self .__template = False
568569
569570 acceptable_keys = (
570571 'api_key' ,
@@ -606,6 +607,15 @@ def __init__(self, **kwargs):
606607 '''
607608 )
608609
610+ template = property (
611+ lambda self : self .__template ,
612+ lambda self , value : setattr (self , '_PMBatchMail__template' , value ),
613+ lambda self : setattr (self , '_PMBatchMail__template' , None ),
614+ '''
615+ Bool to check send with template
616+ '''
617+ )
618+
609619 def add_message (self , message ):
610620 '''
611621 Add a message to the batch
@@ -625,6 +635,10 @@ def _check_values(self):
625635 type and are not missing.
626636 '''
627637 for message in self .__messages :
638+ # Check list of messages to see if sending using templates
639+ if not self .__template and (message .template_id or message .template_model ):
640+ self .__template = True
641+
628642 message ._check_values ()
629643
630644 def send (self , test = None ):
@@ -648,9 +662,16 @@ def send(self, test=None):
648662 for message in messages :
649663 json_message .append (message .to_json_message ())
650664
665+ if not self .__template :
666+ endpoint_url = __POSTMARK_URL__ + 'email/batch'
667+ payload = json .dumps (json_message , cls = PMJSONEncoder ).encode ('utf8' )
668+ else :
669+ endpoint_url = __POSTMARK_URL__ + 'email/batchWithTemplates'
670+ payload = json .dumps ({'Messages' : json_message }, cls = PMJSONEncoder ).encode ('utf8' )
671+
651672 req = Request (
652- __POSTMARK_URL__ + 'email/batch' ,
653- json . dumps ( json_message , cls = PMJSONEncoder ). encode ( 'utf8' ) ,
673+ endpoint_url ,
674+ payload ,
654675 {
655676 'Accept' : 'application/json' ,
656677 'Content-Type' : 'application/json' ,
@@ -934,7 +955,7 @@ def activate(self, bounce_id):
934955 # print req_url
935956 h1 = HTTPConnection ('api.postmarkapp.com' )
936957 dta = urlencode ({"data" : "blank" }).encode ('utf8' )
937- req = h1 .request (
958+ h1 .request (
938959 'PUT' ,
939960 req_url ,
940961 dta ,
0 commit comments