1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-09 22:38:19 +02:00

adds formatting updates and testing updates

This commit is contained in:
Joe 2021-02-07 22:49:48 -05:00
parent 83ee3bc4be
commit ea17f6df0b
7 changed files with 35 additions and 19 deletions

View file

@ -5,9 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
[Also based on](https://github.com/conventional-changelog/standard-version/blob/master/CHANGELOG.md) so decending. [Also based on](https://github.com/conventional-changelog/standard-version/blob/master/CHANGELOG.md) so decending.
## [0.1.2] - 2021-02-06 ## [0.1.2] - 2021-02-07
### Added ### Added
- adds unique constrain to the message id and a bit of a change on how to create a message - adds unique constrain to the message id and a bit of a change on how to create a message
- adds formatting updates and testing updates
## [0.1.1] - 2021-02-03 ## [0.1.1] - 2021-02-03
### Added ### Added

View file

@ -6,13 +6,19 @@ from django.db import migrations, models
class Migration(migrations.Migration): class Migration(migrations.Migration):
dependencies = [ dependencies = [
('django_mailbox', '0008_auto_20190219_1553'), ("django_mailbox", "0008_auto_20190219_1553"),
] ]
operations = [ operations = [
migrations.AlterField( migrations.AlterField(
model_name='message', model_name="message",
name='message_id', name="message_id",
field=models.CharField(blank=None, max_length=255, null=None, unique=True, verbose_name='Message ID'), field=models.CharField(
blank=None,
max_length=255,
null=None,
unique=True,
verbose_name="Message ID",
),
), ),
] ]

View file

@ -352,7 +352,10 @@ class Mailbox(models.Model):
return new return new
def _process_message(self, message): def _process_message(self, message):
try:
msg = Message(message_id=message["message-id"][0:255].strip()) msg = Message(message_id=message["message-id"][0:255].strip())
except Exception:
msg = Message()
msg._email_object = message msg._email_object = message
settings = utils.get_settings() settings = utils.get_settings()
@ -361,8 +364,8 @@ class Mailbox(models.Model):
msg.mailbox = self msg.mailbox = self
if "subject" in message: if "subject" in message:
msg.subject = utils.convert_header_to_unicode(message["subject"])[0:255] msg.subject = utils.convert_header_to_unicode(message["subject"])[0:255]
# ~ if "message-id" in message: if "message-id" in message:
# ~ msg.message_id = message["message-id"][0:255].strip() msg.message_id = message["message-id"][0:255].strip()
if "from" in message: if "from" in message:
msg.from_header = utils.convert_header_to_unicode(message["from"]) msg.from_header = utils.convert_header_to_unicode(message["from"])
if "to" in message: if "to" in message:
@ -472,7 +475,9 @@ class Message(models.Model):
subject = models.CharField(_("Subject"), max_length=255) subject = models.CharField(_("Subject"), max_length=255)
message_id = models.CharField(_("Message ID"), max_length=255,blank=None,null=None,unique=True) message_id = models.CharField(
_("Message ID"), max_length=255, blank=None, null=None, unique=True
)
in_reply_to = models.ForeignKey( in_reply_to = models.ForeignKey(
"django_mailbox.Message", "django_mailbox.Message",

View file

@ -1,3 +1,3 @@
from django.dispatch.dispatcher import Signal from django.dispatch.dispatcher import Signal
message_received = Signal(providing_args=["message"]) message_received = Signal()

View file

@ -10,7 +10,7 @@ from django_mailbox.models import Mailbox, Message
from django_mailbox.utils import convert_header_to_unicode from django_mailbox.utils import convert_header_to_unicode
from django_mailbox import utils from django_mailbox import utils
from django_mailbox.tests.base import EmailMessageTestCase from django_mailbox.tests.base import EmailMessageTestCase
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
__all__ = ["TestProcessEmail"] __all__ = ["TestProcessEmail"]
@ -347,11 +347,11 @@ class TestProcessEmail(EmailMessageTestCase):
email_object = self._get_email_object( email_object = self._get_email_object(
"message_with_long_content.eml", "message_with_long_content.eml",
) )
size = len(force_text(email_object.as_string())) size = len(force_str(email_object.as_string()))
msg = self.mailbox.process_incoming_message(email_object) msg = self.mailbox.process_incoming_message(email_object)
self.assertEqual(size, len(force_text(msg.get_email_object().as_string()))) self.assertEqual(size, len(force_str(msg.get_email_object().as_string())))
def test_message_saved(self): def test_message_saved(self):
message = self._get_email_object("generic_message.eml") message = self._get_email_object("generic_message.eml")
@ -365,7 +365,7 @@ class TestProcessEmail(EmailMessageTestCase):
msg = self.mailbox.process_incoming_message(message) msg = self.mailbox.process_incoming_message(message)
self.assertNotEquals(msg.eml, None) self.assertNotEqual(msg.eml, None)
self.assertTrue(msg.eml.name.endswith(".eml")) self.assertTrue(msg.eml.name.endswith(".eml"))
@ -384,7 +384,7 @@ class TestProcessEmail(EmailMessageTestCase):
msg = self.mailbox.process_incoming_message(message) msg = self.mailbox.process_incoming_message(message)
self.assertEquals(msg.eml, None) self.assertEqual(msg.eml, None)
def test_message_compressed(self): def test_message_compressed(self):
message = self._get_email_object("generic_message.eml") message = self._get_email_object("generic_message.eml")

View file

@ -1,7 +1,5 @@
import imaplib import imaplib
import logging import logging
from os.path import exists
import json
from django.conf import settings from django.conf import settings
from .base import EmailTransport, MessageParseError from .base import EmailTransport, MessageParseError
@ -108,7 +106,6 @@ class ImapTransport(EmailTransport):
# If the archive folder does not exist, create it # If the archive folder does not exist, create it
self.server.create(self.archive) self.server.create(self.archive)
for uid in message_ids: for uid in message_ids:
try: try:
typ, msg_contents = self.server.uid("fetch", uid, "(RFC822)") typ, msg_contents = self.server.uid("fetch", uid, "(RFC822)")

View file

@ -14,7 +14,8 @@ These ingested messages will be stored in the database in Django models and you
or -- if you're in a hurry -- by using a signal receiver. or -- if you're in a hurry -- by using a signal receiver.
### Usage Usage
-----
1. poetry add django-mailbox 1. poetry add django-mailbox
@ -36,3 +37,9 @@ or -- if you're in a hurry -- by using a signal receiver.
`Github <http://github.com/coddingtonbear/django-mailbox/issues>`_. `Github <http://github.com/coddingtonbear/django-mailbox/issues>`_.
- Test status available on - Test status available on
`Travis-CI <https://travis-ci.org/coddingtonbear/django-mailbox>`_. `Travis-CI <https://travis-ci.org/coddingtonbear/django-mailbox>`_.
Development
-----------
export DJANGO_SETTINGS_MODULE=websrv.settings