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

Merge pull request #293 from pfouque/resend_poor_type_checking

Improve Resend documentation and checks
This commit is contained in:
Pascal Fouque 2024-05-24 09:27:36 +02:00 committed by GitHub
commit 8992babec6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 34 additions and 21 deletions

View file

@ -300,7 +300,7 @@ class Mailbox(models.Model):
new = EmailMessage()
if (
msg.is_multipart()
and not 'attachment' in msg.get('Content-Disposition', '')
and 'attachment' not in msg.get('Content-Disposition', '')
):
for header, value in msg.items():
new[header] = value
@ -647,14 +647,24 @@ class Message(models.Model):
return addresses
def reply(self, message):
"""Sends a message as a reply to this message instance.
"""Sends an EmailMessage as a reply to this message instance::
from django.core.mail import EmailMessage
message.reply(
EmailMessage(subject="pong", body="pongpong")
)
Although Django's e-mail processing will set both Message-ID
and Date upon generating the e-mail message, we will not be able
to retrieve that information through normal channels, so we must
pre-set it.
"""
from django.core.mail import EmailMessage as DjangoEmailMessage
if not isinstance(message, DjangoEmailMessage):
raise ValueError('Message must be an instance of django.core.mail.EmailMessage')
if not message.from_email:
if self.mailbox.from_email:
message.from_email = self.mailbox.from_email
@ -888,7 +898,6 @@ class MessageAttachment(models.Model):
return f'{self.get_filename()}: {self.document.url}'
return self.get_filename()
class Meta:
verbose_name = _('Message attachment')
verbose_name_plural = _('Message attachments')

View file

@ -345,6 +345,9 @@ class TestProcessEmail(EmailMessageTestCase):
)
msg = self.mailbox.record_outgoing_message(email_object.message())
with self.assertRaises(ValueError):
msg.reply(Message(subject="ping", body="pong"))
self.assertTrue(msg.outgoing)
actual_from = 'username@example.com'
@ -439,7 +442,7 @@ class TestProcessEmail(EmailMessageTestCase):
msg = self.mailbox.process_incoming_message(message)
actual_email_object = msg.get_email_object()
_actual_email_object = msg.get_email_object()
self.assertTrue(msg.eml.name.endswith('.eml.gz'))

View file

@ -11,4 +11,4 @@ class EmailTransport:
return message
def close(self):
pass
pass

View file

@ -53,7 +53,7 @@ class ImapTransport(EmailTransport):
try:
self.server.close()
self.server.logout()
except (imaplib.IMAP4.error, OSError) as e:
except (imaplib.IMAP4.error, OSError) as e:
logger.warning(f'Failed to close IMAP connection, ignoring: {e}')
pass