diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 168304e..b5a6c8a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog ######### +2.7.0 (trajkovskaelena591) +-------------------------- + +* Replace deprecated mailer package +* Upgrade Alpine + 2.6.1 (mgundel) --------------- diff --git a/Dockerfile b/Dockerfile index 26da69d..5818ded 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.12 +FROM alpine:3.18 LABEL Maintainer="Michael Stella " ARG PIP_EXTRA_INDEX_URL diff --git a/rssalertbot/alerts.py b/rssalertbot/alerts.py index dae2edd..d67fcb3 100644 --- a/rssalertbot/alerts.py +++ b/rssalertbot/alerts.py @@ -5,7 +5,10 @@ import re import html2text import pendulum -from mailer import Mailer, Message +import smtplib +import email +from email.message import EmailMessage +from email.mime.text import MIMEText import rssalertbot from .util import guess_level, strip_html @@ -42,12 +45,18 @@ def alert_email(feed, cfg, entry): description = strip_html(entry.description) try: - smtp = Mailer(host=cfg['server']) - message = Message(charset="utf-8", From=cfg['from'], To=cfg['to'], - Subject = f"{feed.group['name']} Alert: ({feed.name}) {entry.title}") - message.Body = f"Feed: {feed.name}\nDate: {entry.datestring}\n\n{description}" - message.header('X-Mailer', 'rssalertbot') - smtp.send(message) + message = EmailMessage() + message["From"] = cfg['from'] + message["To"] = cfg['to'] + message["Subject"] = f"{feed.group['name']} Alert: ({feed.name}) {entry.title}" + + plainpart = MIMEText(f"Feed: {feed.name}\nDate: {entry.datestring}\n\n{description}", "plain") + plainpart.add_header('X-Mailer', 'rssalertbot') + + message.attach(plainpart, "utf-8") + + smtp = smtplib.SMTP(cfg['server']) + smtp.send_message(message) except Exception: logger.exception("[%s] Error sending mail", feed.name) diff --git a/setup.py b/setup.py index 17999ce..e995d3f 100755 --- a/setup.py +++ b/setup.py @@ -20,7 +20,7 @@ install_requires = [ 'aiohttp', 'feedparser~=6.0.0', - 'mailer', + 'email', 'pendulum~=2.0', 'html2text', 'python-box~=4.2',