update: smtp 验证码有效期 60s 调整为 10 分钟,邮件正文从 CODE_TTL 派生
60 秒对邮件送达延迟过于紧张;正文有效期文案改为按 TTL 自动生成避免漂移,前端提示与 README 同步。同时移除 .env 排查用的凭证明文调试打印。
This commit is contained in:
1 parent
f5b69d0b4c
commit
f4a7aca2fa
5 files changed
+8
-11
No files matched your search
+3
-6
@@ -71,12 +71,13 @@ SMTP_USER = os.environ.get("SMTP_USER", "")
|
||||
SMTP_PASSWORD = os.environ.get("__PASSWORD") or os.environ.get("SMTP_PASSWORD", "")
|
||||
|
||||
CODE_LEN = 6
|
||||
CODE_TTL = 60 # 验证码有效期(秒)
|
||||
CODE_TTL = 600 # 验证码有效期(秒)
|
||||
# 多数邮箱服务商(163/QQ 等)强制 From 头与登录账号一致,故默认跟随 SMTP_USER;
|
||||
# 仅当服务商允许自定义发件身份时才在 .env 里显式配 MAIL_FROM 覆盖
|
||||
MAIL_FROM = os.environ.get("MAIL_FROM") or SMTP_USER
|
||||
DEFAULT_SUBJECT = "DNFS 邮箱验证"
|
||||
DEFAULT_CONTENT = "DNFS: 您的邮箱验证码为 {code},一分钟内有效。"
|
||||
# 有效期文案由 CODE_TTL 派生,改 TTL 不用同步改这里({{code}} 是 f-string 转义)
|
||||
DEFAULT_CONTENT = f"DNFS: 您的邮箱验证码为 {{code}},{CODE_TTL // 60} 分钟内有效。"
|
||||
|
||||
code_store = {} # email -> {'code': str, 'expires_at': float}
|
||||
STORE_LOCK = threading.Lock()
|
||||
@@ -104,10 +105,6 @@ class SmtpServer:
|
||||
# ── 启动 / 停止 ──────────────────────────────────────────────────
|
||||
def start(self) -> None:
|
||||
"""启动服务(阻塞当前线程)。"""
|
||||
# 调试:打印加载到的凭证(明文,含密码;仅 print 不落日志库,调完请删)
|
||||
print(f"[smtp] 凭证加载(.env 贡献 {_env_loaded} 项): "
|
||||
f"SMTP_SERVER={SMTP_SERVER!r} SMTP_PORT={SMTP_PORT} "
|
||||
f"SMTP_USER={SMTP_USER!r} __PASSWORD={SMTP_PASSWORD!r}")
|
||||
if not all([SMTP_SERVER, SMTP_USER, SMTP_PASSWORD]):
|
||||
# 只报缺失的 key 名,绝不报值
|
||||
missing = [k for k, v in (("SMTP_SERVER", SMTP_SERVER),
|
||||
|
||||
Reference in new issue
Block a user