57 lines
1.3 KiB
Python
57 lines
1.3 KiB
Python
'''
|
|
@author: Klaus-Uwe Mitterer
|
|
'''
|
|
import imaplib2
|
|
import socket
|
|
import consolehelper
|
|
|
|
class ImapHelper(object):
|
|
folder_ = None
|
|
mail_ = None
|
|
|
|
def __init__(self,host,port,is_ssl,user,password,folder):
|
|
|
|
self.folder_=folder
|
|
try:
|
|
if(is_ssl):
|
|
self.mail_=imaplib2.IMAP4_SSL(host,port)
|
|
else:
|
|
self.mail_=imaplib2.IMAP4(host,port)
|
|
if 'STARTTLS' in self.mail_.capabilities:
|
|
self.mail_.starttls()
|
|
self.mail_.login(user, password)
|
|
|
|
except socket.error, e:
|
|
print "Error while connecting: {0}".format(e)
|
|
exit(1)
|
|
except imaplib2.IMAP4.error, e:
|
|
print "Error while connecting: {0}".format(e)
|
|
exit(1)
|
|
|
|
def __del__(self):
|
|
if self.mail_ != None:
|
|
self.mail_.logout()
|
|
|
|
|
|
def addMessage(self,message):
|
|
folder=self.folder_.replace('.',"/")
|
|
try:
|
|
ret=self.mail_.append(folder, "", None, str(message))
|
|
except socket.error, e:
|
|
print "Error while appending: {0}".format(e)
|
|
exit(1)
|
|
except imaplib2.IMAP4.error, e:
|
|
print "Error while appending: {0}".format(e)
|
|
exit(1)
|
|
|
|
if ret[0] != "OK":
|
|
print "Error while creating message {0}".format(ret[1])
|
|
if "Folder doesn't exist" in ret[1][0]:
|
|
if consolehelper.confirm("Folder doesn't exist. Do you want to create it?"):
|
|
self.mail_.create(folder)
|
|
self.addMessage(message)
|
|
|
|
c = consolehelper.Colors()
|
|
c.print_success("Done")
|
|
|