Merge pull request #108 from balsagoth/feature/starttls
Add starttls support
This commit is contained in:
12
README.rst
12
README.rst
@@ -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()
|
||||
|
||||
@@ -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
|
||||
---------
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user