From f2cfe8de3e211c233640981a33e10bcd1c5fa168 Mon Sep 17 00:00:00 2001 From: smueller Date: Tue, 7 Jul 2026 16:00:22 +0200 Subject: [PATCH] Add 'from_name' field to SMTP settings and update email sending logic - Introduced a new 'from_name' field in the SMTP settings to allow users to specify a sender name. - Updated the dashboard template to include an input for the sender name. - Modified the email sending logic to format the 'From' header with the sender name if provided, enhancing email presentation. --- app/main.py | 2 ++ app/services/smtp_sender.py | 7 ++++++- app/templates/dashboard.html | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index b5637d4..904878f 100644 --- a/app/main.py +++ b/app/main.py @@ -482,6 +482,7 @@ def update_smtp_settings( username: str = Form(""), password: str = Form(""), from_email: str = Form(""), + from_name: str = Form(""), reply_to: str = Form(""), use_tls: str | None = Form(None), recipients: str = Form(""), @@ -504,6 +505,7 @@ def update_smtp_settings( set_config(db, "smtp.username", username.strip()) set_config(db, "smtp.password", password) set_config(db, "smtp.from_email", from_email.strip()) + set_config(db, "smtp.from_name", from_name.strip()) set_config(db, "smtp.reply_to", reply_to.strip()) set_config(db, "smtp.use_tls", "true" if use_tls == "true" else "false") set_config(db, "smtp.recipients", recipients.strip()) diff --git a/app/services/smtp_sender.py b/app/services/smtp_sender.py index bc4b890..86d8685 100644 --- a/app/services/smtp_sender.py +++ b/app/services/smtp_sender.py @@ -2,6 +2,7 @@ import smtplib from datetime import datetime from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText +from email.utils import formataddr from typing import Sequence from sqlalchemy.orm import Session @@ -18,6 +19,7 @@ def get_smtp_settings(db: Session) -> dict[str, str]: "username": get_config(db, "smtp.username", ""), "password": get_config(db, "smtp.password", ""), "from_email": get_config(db, "smtp.from_email", ""), + "from_name": get_config(db, "smtp.from_name", ""), "reply_to": get_config(db, "smtp.reply_to", ""), "use_tls": get_config(db, "smtp.use_tls", "true"), "recipients": get_config(db, "smtp.recipients", ""), @@ -90,7 +92,10 @@ def send_newsletter( msg.attach(MIMEText(text_content, "plain", "utf-8")) msg.attach(MIMEText(html_content, "html", "utf-8")) msg["Subject"] = subject - msg["From"] = settings["from_email"] + if settings.get("from_name"): + msg["From"] = formataddr((settings["from_name"], settings["from_email"])) + else: + msg["From"] = settings["from_email"] msg["To"] = ", ".join(recipients) if settings.get("reply_to"): msg["Reply-To"] = settings["reply_to"] diff --git a/app/templates/dashboard.html b/app/templates/dashboard.html index 5390ddd..44cc22d 100644 --- a/app/templates/dashboard.html +++ b/app/templates/dashboard.html @@ -253,6 +253,9 @@ +