Skip to content

Commit

Permalink
automatic merge failed for some reason
Browse files Browse the repository at this point in the history
  • Loading branch information
alexlovelltroy committed Feb 24, 2014
2 parents 475eab4 + 5d1ca40 commit bc2897b
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
v0.1.0, Feb 17th 2014 -- Initial release.
v0.1.1, Feb 20th 2014 -- Bugfixes for subject parsing.
v0.1.2, Feb 24th 2014 -- Added a mixin for a unique message.
5 changes: 4 additions & 1 deletion classy_mail/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
logger = logging.getLogger("classy_mail")
from mixins.filesystem import FileTemplateMixin
from mixins.model import ModelTemplateMixin
from mixins.log import LogMessageMixin
from mixins.log import LogMessageMixin, UniqueMessageMixin
from mixins.md_template import MarkdownTemplateMixin
from .base import BaseEmail

Expand All @@ -17,3 +17,6 @@ class FileTemplateEmail(LogMessageMixin, FileTemplateMixin, BaseEmail):

class MarkdownTemplateEmail(LogMessageMixin, MarkdownTemplateMixin, BaseEmail):
pass

class UniqueMarkdownTemplateEmail(UniqueMessageMixin, MarkdownTemplateMixin, BaseEmail):
pass
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()
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name='django-classy-mail',
version='0.1.1',
version='0.1.2',
author='Alex Lovell-Troy',
author_email='alex@lovelltroy.org',
description='Class-Based Email for Django built with Mixins',
Expand Down

0 comments on commit bc2897b

Please # to comment.