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

Adding functionality allowing one to easily send replies to existing messages.

This commit is contained in:
Adam Coddington 2012-10-27 18:51:41 -07:00
parent 5c619d98b8
commit 1be4539246

View file

@ -106,13 +106,25 @@ class Mailbox(models.Model):
return conn
def process_incoming_message(self, message):
msg = self._process_message(self, message)
msg.outgoing = False
msg.save()
message_received.send(sender=self, message=msg)
return msg
def record_outgoing_message(self, message):
msg = self._process_message(self, message)
msg.outgoing = True
msg.save()
return msg
def _process_message(self, message):
msg = Message()
msg.mailbox = self
msg.subject = message['subject'][0:255]
msg.message_id = message['message-id'][0:255]
msg.from_header = message['from']
msg.to_header = message['to']
msg.outgoing = False
msg.body = message.as_string()
if message['in-reply-to']:
try:
@ -129,7 +141,6 @@ class Mailbox(models.Model):
)
except IndexError:
pass
message_received.send(sender=self, message=msg)
return msg
def get_new_mail(self):
@ -226,6 +237,18 @@ class Message(models.Model):
)
return addresses
def reply(self, message):
message.extra_headers['In-Reply-To'] = self.message_id
message.extra_headers['References'] = self.message_id
for reference in self.references:
message.extra_headers['References'].append(
' %s' % reference.message_id
)
message.send()
return self.mailbox.record_outgoing_message(
message
)
def get_email_object(self):
return email.message_from_string(self.body)