Skip to content

Commit

Permalink
Adding mixin for unique mail
Browse files Browse the repository at this point in the history
  • Loading branch information
Alex Lovell-Troy committed Feb 24, 2014
1 parent a78cab3 commit c3cea75
Showing 1 changed file with 32 additions and 0 deletions.
32 changes: 32 additions & 0 deletions classy_mail/mixins/log.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
from classy_mail.models import EmailMessageLog

class UniqueMailAlreadySent(Exception):
pass


class LogMessageMixin(object):
def send(self, log_msg=True):
Expand All @@ -18,3 +21,32 @@ def send(self, log_msg=True):
log.save()
else:
self.msg.send()

class UniqueMessageMixin(LogMessageMixin):
def send(self, log_msg=True):
self.msg = self.build_msg()
if EmailMessageLog.objects.filter(
subject = self.msg.message().get('Subject'),
to_header = self.msg.message().get('To'),
from_header = self.msg.message().get('From'),
).count() > 0:
raise UniqueMailAlreadySent(
"Mail found in the log from %s to %s with the subject: %s" % (
self.msg.message().get('From'),
self.msg.message().get('To'),
self.msg.message().get('Subject')
)
)
if log_msg:
log = EmailMessageLog(
message_text = self.msg.message().as_string(),
subject = self.msg.message().get('Subject'),
from_header = self.msg.message().get('From'),
to_header = self.msg.message().get('To'),
cc_header = self.msg.message().get('Cc'),
bcc_header = self.msg.message().get('Bcc'),
)
self.msg.send()
log.save()
else:
self.msg.send()

0 comments on commit c3cea75

Please # to comment.