From 835986c96a7f893792f6d3658a5bef4fa4fe42ae Mon Sep 17 00:00:00 2001 From: Adam Dobrawy Date: Wed, 18 Mar 2015 09:56:52 +0100 Subject: [PATCH] Added random eml file name, removed getattr related to self.mailbox.from_email in Message.reply, fix docs - second round of pull requests --- django_mailbox/models.py | 7 ++++--- django_mailbox/tests/test_process_email.py | 2 +- docs/topics/appendix/settings.rst | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/django_mailbox/models.py b/django_mailbox/models.py index 3318e7a..7f05b98 100644 --- a/django_mailbox/models.py +++ b/django_mailbox/models.py @@ -332,7 +332,7 @@ class Mailbox(models.Model): def _process_message(self, message): msg = Message() if STORE_ORIGINAL_MESSAGE: - msg.eml.save('message.eml', ContentFile(message), save=False) + msg.eml.save('%s.eml' % uuid.uuid4(), ContentFile(message), save=False) msg.mailbox = self if 'subject' in message: msg.subject = convert_header_to_unicode(message['subject'])[0:255] @@ -460,6 +460,7 @@ class Message(models.Model): eml = models.FileField( _(u'Message as a file'), null=True, + upload_to="messages", help_text=_(u'Original full content of message') ) objects = models.Manager() @@ -510,7 +511,7 @@ class Message(models.Model): pre-set it. """ - if not getattr(message, 'from_email', None): + if not self.from_email: if self.mailbox.from_email: message.from_email = self.mailbox.from_email else: @@ -612,7 +613,7 @@ class Message(models.Model): def get_email_object(self): """ Returns an `email.message.Message` instance for this message.""" if self.eml: - return email.message_from_file(Message.objects.last().eml) + return email.message_from_file(self.eml) body = self.get_body() if six.PY3: flat = email.message_from_bytes(body) diff --git a/django_mailbox/tests/test_process_email.py b/django_mailbox/tests/test_process_email.py index d00cf05..320dcdd 100644 --- a/django_mailbox/tests/test_process_email.py +++ b/django_mailbox/tests/test_process_email.py @@ -210,7 +210,7 @@ class TestProcessEmail(EmailMessageTestCase): ) msg = self.mailbox.record_outgoing_message(email_object.message()) - self.assertEqual(msg.outgoing, True) + self.assertTrue(msg.outgoing) actual_from = 'username@example.com' reply_email_object = EmailMessage('Test subject', # subject diff --git a/docs/topics/appendix/settings.rst b/docs/topics/appendix/settings.rst index 7a2e573..13fdde6 100644 --- a/docs/topics/appendix/settings.rst +++ b/docs/topics/appendix/settings.rst @@ -66,6 +66,7 @@ Settings * If this is set, it will be read as a number of bytes. Any messages above that size will not be downloaded. ``2000000`` is 2 Megabytes. + * ``DJANGO_MAILBOX_STORE_ORIGINAL_MESSAGE`` * Default: ``False`` * Type: ``boolean``