Skip to content

Commit

Permalink
Merge pull request #108 from balsagoth/feature/starttls
Browse files Browse the repository at this point in the history
Add starttls support
  • Loading branch information
martinrusev committed Nov 30, 2017
2 parents 7b1bda6 + cfca92d commit 43a3781
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
12 changes: 11 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ Usage
username='username',
password='password',
ssl=True,
ssl_context=None) as imbox:
ssl_context=None,
starttls=False) as imbox:
# Get all folders
status, folders_with_additional_info = imbox.folders()
Expand Down Expand Up @@ -125,6 +126,15 @@ Usage
# mark the message as read
imbox.mark_seen(uid)
# To use with starttls
with Imbox('server.com',
username='username',
password='password',
ssl=False,
ssl_context=None,
starttls=True) as imbox:
Changelog
---------
Expand Down
6 changes: 3 additions & 3 deletions imbox/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@
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
Expand Down
4 changes: 3 additions & 1 deletion imbox/imap.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

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 = {}
Expand All @@ -26,6 +26,8 @@ def __init__(self, hostname, port=None, ssl=True, ssl_context=None):
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))

Expand Down

0 comments on commit 43a3781

Please sign in to comment.