From 5eb6f44cb2e0c68ad48aec1104cdab147b89d40a Mon Sep 17 00:00:00 2001 From: "Steve L. Nyemba" Date: Mon, 2 Jan 2017 22:21:27 -0600 Subject: [PATCH] Added a mailer agent, modified the configuration to handle mailer and factory for transport --- src/api/index.py | 12 ++++-------- src/utils/mailer.py | 38 ++++++++++++++++++++++++++++++++++++++ src/utils/transport.pyc | Bin 17911 -> 0 bytes 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 src/utils/mailer.py delete mode 100644 src/utils/transport.pyc diff --git a/src/api/index.py b/src/api/index.py index c70b7c4..30264b6 100644 --- a/src/api/index.py +++ b/src/api/index.py @@ -40,16 +40,12 @@ f = open(PARAMS['path']) CONFIG = json.loads(f.read()) HANDLERS= {} -for key in CONFIG : - if key == "monitor": - continue - className = CONFIG[key]['class'] +for key in CONFIG['monitor'] : + + className = CONFIG['monitor'][key]['class'] ref = "".join(["monitor.",className,"()"]) ref = eval(ref) - #ref.init(CONFIG[key]['config']) - - - HANDLERS[key] = {"class":ref,"config":CONFIG[key]["config"]} + HANDLERS[key] = {"class":ref,"config":CONFIG['monitor'][key]["config"]} f.close() diff --git a/src/utils/mailer.py b/src/utils/mailer.py new file mode 100644 index 0000000..c63f2bb --- /dev/null +++ b/src/utils/mailer.py @@ -0,0 +1,38 @@ +import smtplib +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText + +class MailAgent : + def __init__(self,conf) : + self.uid = conf['uid'] + + + try: + + self.handler = smtplib.SMTP_SSL(conf['host'],conf['port']) + r = self.handler.login(self.uid,conf['password']) + # + # @TODO: Check the status of the authentication + # If not authenticated the preconditions have failed + # + except Exception,e: + print e + self.handler = None + pass + + + def send(self,**args) : + subject = args['subject'] + message = args['message'] + to = args['to'] + if '<' in message and '>' in message : + message = MIMEText(message,'html') + else: + message = MIMEText(message,'plain') + message['From'] = self.uid + message['To'] = to + message['Subject'] = subject + return self.handler.sendmail(self.uid,to,message.as_string()) + def close(self): + self.handler.quit() + diff --git a/src/utils/transport.pyc b/src/utils/transport.pyc deleted file mode 100644 index a9f05bd7b932b8735ce13bd2d12f0024ab28ec61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17911 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