Add imap configuration bits

This commit adds the necessary bits for configuring a connection to an
imap server. It also adds support for ssl and watching a specific
folder.
This commit is contained in:
Matthew Treinish 2016-08-29 19:33:27 -04:00
parent 843fac226b
commit b278fa0008
No known key found for this signature in database
GPG Key ID: FD12A0F214C9E177
2 changed files with 29 additions and 4 deletions

View File

@ -92,7 +92,27 @@ def main():
keepalive=keepalive,
auth=auth)
launchpad = lp.LPImap('', '')
# IMAP email settings
imap_server = config.get('imap', 'hostname')
imap_user = config.get('imap', 'username')
imap_password = config.get('imap', 'password')
if config.has_option('imap', 'use_ssl'):
imap_ssl = config.getboolean('imap', 'use_ssl')
else:
imap_ssl = False
if config.has_option('imap', 'folder'):
imap_folder = config.get('imap', 'folder')
else:
imap_folder = 'INBOX'
if config.has_option('imap', 'delete-old'):
imap_delete = config.getboolean('imap', 'delete-old')
else:
imap_delete = False
launchpad = lp.LPImap(imap_server, imap_user, imap_password,
folder=imap_folder, ssl=imap_ssl, delete=imap_delete)
while True:
events = launchpad.getEvents()
for event in events:

View File

@ -18,14 +18,19 @@ import imaplib2 as imaplib
class LPImapWatcher(object):
def __init__(self, imap_user, imap_pass, delete=False):
def __init__(self, server, imap_user, imap_pass, folder='INBOX', ssl=False,
delete=False):
super(LPImapWatcher, self).__init__()
self.imap = imaplib.IMAP4()
self.folder = folder
if ssl:
self.imap = imaplib.IMAP4_SSL(server)
else:
self.imap = imaplib.IMAP4(server)
self.imap.login(imap_user, imap_pass)
self.delete = delete
def getEvents(self):
self.imap.select()
self.imap.select(self.folder)
events = self._find_new_email()
return events