From e3ca295ebd505f145f9811a86b14b38c032c6ea4 Mon Sep 17 00:00:00 2001 From: Stefan Koelle Date: Fri, 7 Aug 2026 11:47:57 +0200 Subject: [PATCH] mail only when some has birthday --- SPEC.md | 2 ++ src/mailer.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/SPEC.md b/SPEC.md index 9beaacd..a89a4c8 100644 --- a/SPEC.md +++ b/SPEC.md @@ -100,6 +100,8 @@ Siehe `sql/schema.sql`. Wichtigste Änderungen gegenüber v1: konfigurierten Stunde (Default 7 Uhr). - Query: alle Kontakte über alle Accounts hinweg, deren `birthday` (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 `SMTP_HOST`, `SMTP_PORT`, `SMTP_USER`, `SMTP_PASSWORD`, `MAIL_FROM`, `MAIL_TO`. diff --git a/src/mailer.py b/src/mailer.py index 83d114e..c3161dc 100644 --- a/src/mailer.py +++ b/src/mailer.py @@ -11,8 +11,8 @@ import sys from datetime import date from email.message import EmailMessage -from config import Config import db +from config import Config logging.basicConfig(level=Config.LOG_LEVEL, format="%(asctime)s [%(levelname)s] %(message)s") logger = logging.getLogger("mailer") @@ -181,6 +181,10 @@ def main() -> int: return 0 birthdays = fetch_todays_birthdays(conn) + if not birthdays: + logger.info("Keine Geburtstage heute, überspringe Mailversand") + return 0 + msg = build_message(birthdays) try: send_message(msg)