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.
This commit is contained in:
@@ -33,14 +33,6 @@ class EmailQueue:
|
|||||||
# 邮件提供商配置
|
# 邮件提供商配置
|
||||||
self.email_provider = settings.email_provider
|
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 服务(延迟初始化)
|
# MailerSend 服务(延迟初始化)
|
||||||
self._mailersend_service = None
|
self._mailersend_service = None
|
||||||
|
|
||||||
@@ -240,9 +232,17 @@ class EmailQueue:
|
|||||||
是否发送成功
|
是否发送成功
|
||||||
"""
|
"""
|
||||||
try:
|
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 = 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["To"] = email_data.get("to_email", "")
|
||||||
msg["Subject"] = email_data.get("subject", "")
|
msg["Subject"] = email_data.get("subject", "")
|
||||||
|
|
||||||
@@ -258,10 +258,10 @@ class EmailQueue:
|
|||||||
|
|
||||||
# 发送邮件 - 使用线程池避免阻塞事件循环
|
# 发送邮件 - 使用线程池避免阻塞事件循环
|
||||||
def send_smtp_email():
|
def send_smtp_email():
|
||||||
with smtplib.SMTP(self.smtp_server, self.smtp_port) as server:
|
with smtplib.SMTP(smtp_server, smtp_port) as server:
|
||||||
if self.smtp_username and self.smtp_password:
|
if smtp_username and smtp_password:
|
||||||
server.starttls()
|
server.starttls()
|
||||||
server.login(self.smtp_username, self.smtp_password)
|
server.login(smtp_username, smtp_password)
|
||||||
server.send_message(msg)
|
server.send_message(msg)
|
||||||
|
|
||||||
await self._run_in_executor(send_smtp_email)
|
await self._run_in_executor(send_smtp_email)
|
||||||
|
|||||||
Reference in New Issue
Block a user