From 5664e9c48ac7389330120d829f559176d810f000 Mon Sep 17 00:00:00 2001 From: Ivan Pereira Date: Thu, 30 Nov 2017 16:14:17 +0000 Subject: [PATCH] Add suport for starttls --- imbox/__init__.py | 6 +++--- imbox/imap.py | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/imbox/__init__.py b/imbox/__init__.py index 3c48b30..50c05b8 100644 --- a/imbox/__init__.py +++ b/imbox/__init__.py @@ -9,17 +9,17 @@ logger = logging.getLogger(__name__) class Imbox: def __init__(self, hostname, username=None, password=None, ssl=True, - port=None, ssl_context=None, policy=None): + port=None, ssl_context=None, policy=None, starttls=False): self.server = ImapTransport(hostname, ssl=ssl, port=port, - ssl_context=ssl_context) + ssl_context=ssl_context, starttls=starttls) self.hostname = hostname self.username = username self.password = password self.parser_policy = policy self.connection = self.server.connect(username, password) logger.info("Connected to IMAP Server with user {username} on {hostname}{ssl}".format( - hostname=hostname, username=username, ssl=(" over SSL" if ssl else ""))) + hostname=hostname, username=username, ssl=(" over SSL" if ssl or starttls else ""))) def __enter__(self): return self diff --git a/imbox/imap.py b/imbox/imap.py index b99e2f4..6142739 100644 --- a/imbox/imap.py +++ b/imbox/imap.py @@ -8,7 +8,7 @@ logger = logging.getLogger(__name__) class ImapTransport: - def __init__(self, hostname, port=None, ssl=True, ssl_context=None): + def __init__(self, hostname, port=None, ssl=True, ssl_context=None, starttls=False): self.hostname = hostname self.port = port kwargs = {} @@ -26,6 +26,8 @@ class ImapTransport: self.port = 143 self.server = self.transport(self.hostname, self.port, **kwargs) + if starttls: + self.server.starttls() logger.debug("Created IMAP4 transport for {host}:{port}" .format(host=self.hostname, port=self.port))