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:
parent
83ee3bc4be
commit
ea17f6df0b
7 changed files with 35 additions and 19 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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)")
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue