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

add imaps STARTTLS support using +tls

This commit is contained in:
Steeve Chailloux 2016-05-01 19:52:34 +02:00
parent 71fcaa2ede
commit 0ee5efede9
2 changed files with 11 additions and 1 deletions

View file

@ -193,6 +193,11 @@ class Mailbox(models.Model):
"""Returns whether or not this mailbox's connection uses SSL."""
return '+ssl' in self._protocol_info.scheme.lower()
@property
def use_tls(self):
"""Returns whether or not this mailbox's connection uses STARTTLS."""
return '+tls' in self._protocol_info.scheme.lower()
@property
def archive(self):
"""Returns (if specified) the folder to archive messages to."""
@ -223,6 +228,7 @@ class Mailbox(models.Model):
self.location,
port=self.port if self.port else None,
ssl=self.use_ssl,
tls=self.use_tls,
archive=self.archive,
folder=self.folder
)

View file

@ -18,7 +18,8 @@ logger = logging.getLogger(__name__)
class ImapTransport(EmailTransport):
def __init__(
self, hostname, port=None, ssl=False, archive='', folder=None
self, hostname, port=None, ssl=False, tls=False,
archive='', folder=None,
):
self.max_message_size = getattr(
settings,
@ -34,6 +35,7 @@ class ImapTransport(EmailTransport):
self.port = port
self.archive = archive
self.folder = folder
self.tls = tls
if ssl:
self.transport = imaplib.IMAP4_SSL
if not self.port:
@ -45,6 +47,8 @@ class ImapTransport(EmailTransport):
def connect(self, username, password):
self.server = self.transport(self.hostname, self.port)
if self.tls:
self.server.starttls()
typ, msg = self.server.login(username, password)
if self.folder: