From a7976bcdfc78b7b2efd855c29da7aadd33ce1005 Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Sat, 13 Dec 2025 03:57:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20SMTP=E9=85=8D=E9=A2=9D=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=8C=97=E4=BA=AC=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加pytz时区支持 - 配额重置日期改为使用北京时间(UTC+8) - 确保配额在北京时间凌晨0点重置,而不是UTC时间 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- email_service.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/email_service.py b/email_service.py index a2e08c9..892de8a 100644 --- a/email_service.py +++ b/email_service.py @@ -19,6 +19,14 @@ import time import zipfile import secrets from datetime import datetime, timedelta +import pytz + +# 北京时区 +BEIJING_TZ = pytz.timezone('Asia/Shanghai') + +def get_beijing_today(): + """获取北京时间的今天日期字符串""" + return datetime.now(BEIJING_TZ).strftime('%Y-%m-%d') from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase @@ -503,7 +511,7 @@ def _get_available_smtp_config(failover: bool = True) -> Optional[Dict[str, Any] 获取可用的SMTP配置 优先级: 主配置 > 按priority排序的启用配置 """ - today = datetime.now().strftime('%Y-%m-%d') + today = get_beijing_today() with db_pool.get_db() as conn: cursor = conn.cursor() @@ -766,7 +774,7 @@ def send_email( def _get_next_available_smtp_config(exclude_ids: List[int]) -> Optional[Dict[str, Any]]: """获取下一个可用的SMTP配置(排除已尝试的)""" - today = datetime.now().strftime('%Y-%m-%d') + today = get_beijing_today() with db_pool.get_db() as conn: cursor = conn.cursor()