From 301130df02fc3f4b450e881742afdeadeb97b970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=95=E8=B0=B7=E9=85=B1?= Date: Sun, 12 Oct 2025 00:47:18 +0800 Subject: [PATCH] Refactor SMTP config usage in EmailQueue Move SMTP configuration retrieval from class initialization to method scope in send_email_by_smtp. This improves encapsulation and ensures the latest settings are used when sending emails. --- app/service/email_queue.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/service/email_queue.py b/app/service/email_queue.py index 49ccdab..481fe45 100644 --- a/app/service/email_queue.py +++ b/app/service/email_queue.py @@ -33,14 +33,6 @@ class EmailQueue: # 邮件提供商配置 self.email_provider = settings.email_provider - # SMTP 邮件配置 - self.smtp_server = settings.smtp_server - self.smtp_port = settings.smtp_port - self.smtp_username = settings.smtp_username - self.smtp_password = settings.smtp_password - self.from_email = settings.from_email - self.from_name = settings.from_name - # MailerSend 服务(延迟初始化) self._mailersend_service = None @@ -240,9 +232,17 @@ class EmailQueue: 是否发送成功 """ try: + # 获取 SMTP 配置 + smtp_server = settings.smtp_server + smtp_port = settings.smtp_port + smtp_username = settings.smtp_username + smtp_password = settings.smtp_password + from_email = settings.from_email + from_name = settings.from_name + # 创建邮件 msg = MIMEMultipart("alternative") - msg["From"] = f"{self.from_name} <{self.from_email}>" + msg["From"] = f"{from_name} <{from_email}>" msg["To"] = email_data.get("to_email", "") msg["Subject"] = email_data.get("subject", "") @@ -258,10 +258,10 @@ class EmailQueue: # 发送邮件 - 使用线程池避免阻塞事件循环 def send_smtp_email(): - with smtplib.SMTP(self.smtp_server, self.smtp_port) as server: - if self.smtp_username and self.smtp_password: + with smtplib.SMTP(smtp_server, smtp_port) as server: + if smtp_username and smtp_password: server.starttls() - server.login(self.smtp_username, self.smtp_password) + server.login(smtp_username, smtp_password) server.send_message(msg) await self._run_in_executor(send_smtp_email)