mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-20 21:10:36 +00:00
Huge config update and smtp fix for daemon
This commit is contained in:
@ -11,16 +11,17 @@ class Notification(EmailMessage):
|
||||
body_html_template_path,
|
||||
body_template_values_dict):
|
||||
# Create subject with subject_template_values_dict
|
||||
self['subject'] = subject_template.format(**subject_template_values_dict)
|
||||
self['subject'] = subject_template.format(
|
||||
**subject_template_values_dict)
|
||||
# Open template files and insert values from body_template_values_dict
|
||||
with open(body_txt_template_path) as nfile:
|
||||
self.body_txt = nfile.read().format(**body_template_values_dict)
|
||||
self.body = nfile.read().format(**body_template_values_dict)
|
||||
with open(body_html_template_path) as nfile:
|
||||
self.body_html = nfile.read().format(**body_template_values_dict)
|
||||
self.html = nfile.read().format(**body_template_values_dict)
|
||||
# Set txt of email
|
||||
self.set_content(self.body_txt)
|
||||
self.set_content(self.body)
|
||||
# Set html alternative
|
||||
self.add_alternative(self.body_html, subtype='html')
|
||||
self.add_alternative(self.html, subtype='html')
|
||||
|
||||
def set_addresses(self, sender, recipient):
|
||||
self['From'] = sender
|
||||
|
@ -1,41 +1,16 @@
|
||||
import os
|
||||
import smtplib
|
||||
|
||||
|
||||
class NotificationService(object):
|
||||
class NotificationService:
|
||||
"""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 __init__(self, smtp):
|
||||
# Bool to show if the mail server stoped sending mails due to exceeding
|
||||
# its sending limit
|
||||
self.mail_limit_exceeded = False
|
||||
# Holds due to an error unsent email notifications
|
||||
self.not_sent = {}
|
||||
self.smtp = smtp
|
||||
|
||||
def send(self, email):
|
||||
if self.execute_flag:
|
||||
self.smtp_server.send_message(email)
|
||||
else:
|
||||
return
|
||||
self.smtp.send_message(email)
|
||||
|
||||
def quit(self):
|
||||
self.smtp_server.quit()
|
||||
self.smtp.quit()
|
||||
|
Reference in New Issue
Block a user