1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-10 06:48:19 +02:00

Added the bcc and cc fields to the model

This commit is contained in:
Alex Lovell-Troy 2014-05-13 02:02:00 +00:00
parent d084d95b77
commit 668e33d25a

View file

@ -15,7 +15,7 @@ from django.core.files.base import ContentFile
from django.db import models from django.db import models
from django_mailbox.transports import Pop3Transport, ImapTransport,\ from django_mailbox.transports import Pop3Transport, ImapTransport,\
MaildirTransport, MboxTransport, BabylTransport, MHTransport, \ MaildirTransport, MboxTransport, BabylTransport, MHTransport, \
MMDFTransport MMDFTransport, GmailTransport
from django_mailbox.signals import message_received from django_mailbox.signals import message_received
import six import six
from six.moves.urllib.parse import unquote, urlparse from six.moves.urllib.parse import unquote, urlparse
@ -163,6 +163,13 @@ class Mailbox(models.Model):
ssl=self.use_ssl ssl=self.use_ssl
) )
conn.connect(self.username, self.password) conn.connect(self.username, self.password)
elif self.type == "gmail":
conn = GmailTransport(
self.location,
port=self.port if self.port else None,
ssl=self.use_ssl
)
conn.connect(self.username, self.password)
elif self.type == 'maildir': elif self.type == 'maildir':
conn = MaildirTransport(self.location) conn = MaildirTransport(self.location)
elif self.type == 'mbox': elif self.type == 'mbox':
@ -274,6 +281,10 @@ class Mailbox(models.Model):
msg.from_header = convert_header_to_unicode(message['from']) msg.from_header = convert_header_to_unicode(message['from'])
if 'to' in message: if 'to' in message:
msg.to_header = convert_header_to_unicode(message['to']) msg.to_header = convert_header_to_unicode(message['to'])
if 'cc' in message:
msg.cc_header = convert_header_to_unicode(message['cc'])
if 'bcc' in message:
msg.bcc_header = convert_header_to_unicode(message['bcc'])
msg.save() msg.save()
message = self._get_dehydrated_message(message, msg) message = self._get_dehydrated_message(message, msg)
msg.set_body(message.as_string()) msg.set_body(message.as_string())
@ -339,6 +350,8 @@ class Message(models.Model):
max_length=255, max_length=255,
) )
to_header = models.TextField() to_header = models.TextField()
cc_header = models.TextField()
bcc_header = models.TextField()
outgoing = models.BooleanField( outgoing = models.BooleanField(
default=False, default=False,
blank=True, blank=True,
@ -386,6 +399,30 @@ class Message(models.Model):
else: else:
return [] return []
@property
def cc_addresses(self):
addresses = []
for address in self.cc_header.split(','):
if address:
addresses.append(
parseaddr(
address
)[1].lower()
)
return addresses
@property
def bcc_addresses(self):
addresses = []
for address in self.bcc_header.split(','):
if address:
addresses.append(
parseaddr(
address
)[1].lower()
)
return addresses
@property @property
def to_addresses(self): def to_addresses(self):
addresses = [] addresses = []