1
0
Fork 1
mirror of https://github.com/coddingtonbear/django-mailbox.git synced 2026-07-10 06:48:19 +02:00
This commit is contained in:
Alex Lovell-Troy 2014-05-27 21:17:32 +00:00
commit 3914229a9a
6 changed files with 691 additions and 1 deletions

View file

@ -15,7 +15,7 @@ from django.core.files.base import ContentFile
from django.db import models
from django_mailbox.transports import Pop3Transport, ImapTransport,\
MaildirTransport, MboxTransport, BabylTransport, MHTransport, \
MMDFTransport
MMDFTransport, GmailTransport
from django_mailbox.signals import message_received
import six
from six.moves.urllib.parse import parse_qs, unquote, urlparse
@ -175,6 +175,13 @@ class Mailbox(models.Model):
ssl=self.use_ssl
)
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':
conn = MaildirTransport(self.location)
elif self.type == 'mbox':
@ -286,6 +293,10 @@ class Mailbox(models.Model):
msg.from_header = convert_header_to_unicode(message['from'])
if 'to' in message:
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()
message = self._get_dehydrated_message(message, msg)
msg.set_body(message.as_string())
@ -351,6 +362,8 @@ class Message(models.Model):
max_length=255,
)
to_header = models.TextField()
cc_header = models.TextField(default='')
bcc_header = models.TextField(default='')
outgoing = models.BooleanField(
default=False,
blank=True,
@ -398,6 +411,30 @@ class Message(models.Model):
else:
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
def to_addresses(self):
addresses = []