def send_messages(self, email_messages):
if not email_messages:
return
msg_count = 0
try:
client_created = self.open()
prepared_messages = [self.prepare_message(message) for message in email_messages]
pre_send.send_robust(self.__class__, messages=prepared_messages)
responses = self.client.emails.send_batch(*prepared_messages, TrackOpens=self.get_option('TRACK_OPENS'))
post_send.send_robust(self.__class__, messages=prepared_messages, response=responses)
sent, not_sent = partition(lambda x: x['ErrorCode'] != 0, responses)
msg_count = len(sent)
if not_sent:
self.raise_for_response(not_sent)
if client_created:
self.close()
except Exception as exc:
on_exception.send_robust(self.__class__, raw_messages=email_messages, exception=exc)
if not self.fail_silently:
raise
return msg_count
评论列表
文章目录