clean-up rss and mail. Add mail connection check at startup

pull/9/head
Yax 2 years ago
parent 601259cc55
commit 661eb35717

@ -29,7 +29,6 @@ def stacosys_server(config_pathname):
logger = logging.getLogger(__name__)
configure_logging(logging.INFO)
logging.getLogger("werkzeug").level = logging.WARNING
logging.getLogger("apscheduler.executors").level = logging.WARNING
# check config file exists
if not os.path.isfile(config_pathname):
@ -58,8 +57,8 @@ def stacosys_server(config_pathname):
# generate RSS
rss.configure(
config.get(ConfigParameter.RSS_FILE),
config.get(ConfigParameter.SITE_PROTO),
config.get(ConfigParameter.SITE_NAME),
config.get(ConfigParameter.SITE_PROTO),
config.get(ConfigParameter.SITE_URL),
)
rss.generate()
@ -72,6 +71,7 @@ def stacosys_server(config_pathname):
config.get(ConfigParameter.SMTP_PASSWORD),
)
mailer.configure_destination(config.get(ConfigParameter.SITE_ADMIN_EMAIL))
mailer.check()
logger.info("start interfaces %s %s %s", api, form, admin)

@ -32,6 +32,13 @@ class Mailer:
def configure_destination(self, site_admin_email) -> None:
self._site_admin_email = site_admin_email
def check(self):
server = smtplib.SMTP_SSL(
self._smtp_host, self._smtp_port, context=ssl.create_default_context()
)
server.login(self._smtp_login, self._smtp_password)
server.close()
def send(self, subject, message) -> bool:
sender = self._smtp_login
receivers = [self._site_admin_email]
@ -41,11 +48,15 @@ class Mailer:
msg["To"] = self._site_admin_email
msg["From"] = sender
context = ssl.create_default_context()
# TODO catch SMTP failure
with smtplib.SMTP_SSL(
self._smtp_host, self._smtp_port, context=context
) as server:
# pylint: disable=bare-except
try:
server = smtplib.SMTP_SSL(
self._smtp_host, self._smtp_port, context=ssl.create_default_context()
)
server.login(self._smtp_login, self._smtp_password)
server.send_message(msg, sender, receivers)
return True
server.close()
success = True
except:
success = False
return success

@ -19,13 +19,13 @@ class Rss:
def configure(
self,
rss_file,
site_proto,
site_name,
site_proto,
site_url,
) -> None:
self._rss_file = rss_file
self._site_proto = site_proto
self._site_name = site_name
self._site_proto = site_proto
self._site_url = site_url
def generate(self) -> None:

@ -0,0 +1,7 @@
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from stacosys.service import rss
def test_configure():
rss.configure("comments.xml", "blog", "http", "blog.mydomain.com")
Loading…
Cancel
Save