fix mail-plugin
this fix load config the right way. now you can install mail-plugin with ```flaschengeist plugin install mail && flaschengeist plugin enable mail```
This commit is contained in:
parent
11204662be
commit
7eb30b662f
|
@ -1,6 +1,7 @@
|
||||||
import smtplib
|
import smtplib
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
from email.mime.multipart import MIMEMultipart
|
from email.mime.multipart import MIMEMultipart
|
||||||
|
from werkzeug.exceptions import InternalServerError
|
||||||
|
|
||||||
from flaschengeist import logger
|
from flaschengeist import logger
|
||||||
from flaschengeist.models import User
|
from flaschengeist.models import User
|
||||||
|
@ -8,23 +9,29 @@ from flaschengeist.plugins import Plugin
|
||||||
from flaschengeist.utils.hook import HookAfter
|
from flaschengeist.utils.hook import HookAfter
|
||||||
from flaschengeist.controller import userController
|
from flaschengeist.controller import userController
|
||||||
from flaschengeist.controller.messageController import Message
|
from flaschengeist.controller.messageController import Message
|
||||||
|
from flaschengeist.config import config
|
||||||
|
|
||||||
|
|
||||||
class MailMessagePlugin(Plugin):
|
class MailMessagePlugin(Plugin):
|
||||||
def __init__(self, entry_point, config):
|
def load(self):
|
||||||
super().__init__(entry_point, config)
|
self.config = config.get("mail", None)
|
||||||
self.server = config["SERVER"]
|
if self.config is None:
|
||||||
self.port = config["PORT"]
|
logger.error("mail was not configured in flaschengeist.toml")
|
||||||
self.user = config["USER"]
|
raise InternalServerError
|
||||||
self.password = config["PASSWORD"]
|
self.server = self.config["SERVER"]
|
||||||
self.crypt = config["CRYPT"]
|
self.port = self.config["PORT"]
|
||||||
self.mail = config["MAIL"]
|
self.user = self.config["USER"]
|
||||||
|
self.password = self.config["PASSWORD"]
|
||||||
|
self.crypt = self.config["CRYPT"]
|
||||||
|
self.mail = self.config["MAIL"]
|
||||||
|
|
||||||
@HookAfter("send_message")
|
@HookAfter("send_message")
|
||||||
def dummy_send(msg):
|
def dummy_send(msg, *args, **kwargs):
|
||||||
|
logger.info(f"(dummy_send) Sending message to {msg.receiver}")
|
||||||
self.send_mail(msg)
|
self.send_mail(msg)
|
||||||
|
|
||||||
def send_mail(self, msg: Message):
|
def send_mail(self, msg: Message):
|
||||||
|
logger.debug(f"Sending mail to {msg.receiver}")
|
||||||
if isinstance(msg.receiver, User):
|
if isinstance(msg.receiver, User):
|
||||||
if not msg.receiver.mail:
|
if not msg.receiver.mail:
|
||||||
logger.warning("Could not send Mail, mail missing: {}".format(msg.receiver))
|
logger.warning("Could not send Mail, mail missing: {}".format(msg.receiver))
|
||||||
|
@ -34,8 +41,13 @@ class MailMessagePlugin(Plugin):
|
||||||
recipients = userController.get_user_by_role(msg.receiver)
|
recipients = userController.get_user_by_role(msg.receiver)
|
||||||
|
|
||||||
mail = MIMEMultipart()
|
mail = MIMEMultipart()
|
||||||
mail["From"] = self.mail
|
try:
|
||||||
mail["To"] = ", ".join(recipients)
|
mail["From"] = self.mail
|
||||||
|
mail["To"] = ", ".join(recipients)
|
||||||
|
except Exception as e:
|
||||||
|
import traceback
|
||||||
|
|
||||||
|
print(traceback.format_exc())
|
||||||
mail["Subject"] = msg.subject
|
mail["Subject"] = msg.subject
|
||||||
mail.attach(MIMEText(msg.message))
|
mail.attach(MIMEText(msg.message))
|
||||||
if not hasattr(self, "smtp"):
|
if not hasattr(self, "smtp"):
|
||||||
|
|
Loading…
Reference in New Issue