forked from mirror/django-mailbox
add imaps STARTTLS support (#94)
* add imaps STARTTLS support using +tls * documentation on STARTTLS
This commit is contained in:
parent
0f990a44d5
commit
8a73076427
3 changed files with 18 additions and 7 deletions
|
|
@ -144,6 +144,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."""
|
||||
|
|
@ -174,6 +179,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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue