forked from mirror/django-mailbox
Adding functionality allowing one to easily send replies to existing messages.
This commit is contained in:
parent
5c619d98b8
commit
1be4539246
1 changed files with 25 additions and 2 deletions
|
|
@ -106,13 +106,25 @@ class Mailbox(models.Model):
|
||||||
return conn
|
return conn
|
||||||
|
|
||||||
def process_incoming_message(self, message):
|
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 = Message()
|
||||||
msg.mailbox = self
|
msg.mailbox = self
|
||||||
msg.subject = message['subject'][0:255]
|
msg.subject = message['subject'][0:255]
|
||||||
msg.message_id = message['message-id'][0:255]
|
msg.message_id = message['message-id'][0:255]
|
||||||
msg.from_header = message['from']
|
msg.from_header = message['from']
|
||||||
msg.to_header = message['to']
|
msg.to_header = message['to']
|
||||||
msg.outgoing = False
|
|
||||||
msg.body = message.as_string()
|
msg.body = message.as_string()
|
||||||
if message['in-reply-to']:
|
if message['in-reply-to']:
|
||||||
try:
|
try:
|
||||||
|
|
@ -129,7 +141,6 @@ class Mailbox(models.Model):
|
||||||
)
|
)
|
||||||
except IndexError:
|
except IndexError:
|
||||||
pass
|
pass
|
||||||
message_received.send(sender=self, message=msg)
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def get_new_mail(self):
|
def get_new_mail(self):
|
||||||
|
|
@ -226,6 +237,18 @@ class Message(models.Model):
|
||||||
)
|
)
|
||||||
return addresses
|
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):
|
def get_email_object(self):
|
||||||
return email.message_from_string(self.body)
|
return email.message_from_string(self.body)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue