mail only when some has birthday

This commit is contained in:
2026-08-07 11:47:57 +02:00
parent 744c71400d
commit e3ca295ebd
2 changed files with 7 additions and 1 deletions
+2
View File
@@ -100,6 +100,8 @@ Siehe `sql/schema.sql`. Wichtigste Änderungen gegenüber v1:
konfigurierten Stunde (Default 7 Uhr). konfigurierten Stunde (Default 7 Uhr).
- Query: alle Kontakte über alle Accounts hinweg, deren `birthday` - Query: alle Kontakte über alle Accounts hinweg, deren `birthday`
(Monat/Tag) auf das heutige Datum fällt. (Monat/Tag) auf das heutige Datum fällt.
- Versand nur bei existierenden Geburtstagen: Wird keine E-Mail
versendet, wenn die Abfrage keine Treffer liefert.
- Versand per SMTP mit STARTTLS (`smtplib`), Konfiguration über - Versand per SMTP mit STARTTLS (`smtplib`), Konfiguration über
`SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD`, `MAIL_FROM`, `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD`, `MAIL_FROM`,
`MAIL_TO`. `MAIL_TO`.
+5 -1
View File
@@ -11,8 +11,8 @@ import sys
from datetime import date from datetime import date
from email.message import EmailMessage from email.message import EmailMessage
from config import Config
import db import db
from config import Config
logging.basicConfig(level=Config.LOG_LEVEL, format="%(asctime)s [%(levelname)s] %(message)s") logging.basicConfig(level=Config.LOG_LEVEL, format="%(asctime)s [%(levelname)s] %(message)s")
logger = logging.getLogger("mailer") logger = logging.getLogger("mailer")
@@ -181,6 +181,10 @@ def main() -> int:
return 0 return 0
birthdays = fetch_todays_birthdays(conn) birthdays = fetch_todays_birthdays(conn)
if not birthdays:
logger.info("Keine Geburtstage heute, überspringe Mailversand")
return 0
msg = build_message(birthdays) msg = build_message(birthdays)
try: try:
send_message(msg) send_message(msg)