import os import smtplib class NotificationService(object): """This is a nopaque notifcation service object.""" def __init__(self, execute_flag): super(NotificationService, self).__init__() self.execute_flag = execute_flag # If True mails are sent normaly # If False mails are not sent. Used to avoid sending mails for jobs that # have been completed a long time ago. Use this if you implement notify # into an already existing nopaque instance. Change it to True after the # daemon has run one time with the flag set to False self.not_sent = {} # Holds due to an error unsent email notifications self.mail_limit_exceeded = False # Bool to show if the mail server # stoped sending mails due to exceeding its sending limit def get_smtp_configs(self): self.password = os.environ.get('MAIL_PASSWORD') self.port = os.environ.get('MAIL_PORT') self.server_str = os.environ.get('MAIL_SERVER') self.tls = os.environ.get('MAIL_USE_TLS') self.username = os.environ.get('MAIL_USERNAME').split("@")[0] self.email_address = os.environ.get('MAIL_USERNAME') def set_server(self): self.smtp_server = smtplib.SMTP(host=self.server_str, port=self.port) def login(self): self.smtp_server.starttls() self.smtp_server.login(self.username, self.password) def send(self, email): if self.execute_flag: self.smtp_server.send_message(email) else: return def quit(self): self.smtp_server.quit()