fix: smtp .env 解析兼容 KEY: VALUE 冒号格式,MAIL_FROM 默认跟随 SMTP_USER
服务器 .env 误用 YAML 冒号格式导致凭证全部加载为空;163 等服务商强制 From 头与登录账号一致,写死的 MAIL_FROM 会触发 553,现默认取 SMTP_USER、可用 .env 显式覆盖。
This commit is contained in:
1 parent
53c742c26e
commit
f5b69d0b4c
1 file changed
+7
-3
+7
-3
@@ -27,7 +27,7 @@ import threading
|
|||||||
import time
|
import time
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
|
|
||||||
# 手动加载 .env(支持 KEY=VALUE / KEY VALUE / export KEY=... 格式,容忍空行/注释/引号)
|
# 手动加载 .env(支持 KEY=VALUE / KEY: VALUE / KEY VALUE / export KEY=... 格式,容忍空行/注释/引号)
|
||||||
_env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env")
|
_env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env")
|
||||||
_env_loaded = 0
|
_env_loaded = 0
|
||||||
if os.path.isfile(_env_path):
|
if os.path.isfile(_env_path):
|
||||||
@@ -38,9 +38,11 @@ if os.path.isfile(_env_path):
|
|||||||
continue
|
continue
|
||||||
if _line.startswith("export "):
|
if _line.startswith("export "):
|
||||||
_line = _line[len("export "):].strip()
|
_line = _line[len("export "):].strip()
|
||||||
# 支持 KEY=VALUE 与 KEY VALUE 两种写法
|
# 支持 KEY=VALUE / KEY: VALUE / KEY VALUE 三种写法
|
||||||
if "=" in _line:
|
if "=" in _line:
|
||||||
_key, _, _val = _line.partition("=")
|
_key, _, _val = _line.partition("=")
|
||||||
|
elif ":" in _line:
|
||||||
|
_key, _, _val = _line.partition(":")
|
||||||
else:
|
else:
|
||||||
_parts = _line.split(None, 1)
|
_parts = _line.split(None, 1)
|
||||||
_key = _parts[0]
|
_key = _parts[0]
|
||||||
@@ -70,7 +72,9 @@ SMTP_PASSWORD = os.environ.get("__PASSWORD") or os.environ.get("SMTP_PASSWORD",
|
|||||||
|
|
||||||
CODE_LEN = 6
|
CODE_LEN = 6
|
||||||
CODE_TTL = 60 # 验证码有效期(秒)
|
CODE_TTL = 60 # 验证码有效期(秒)
|
||||||
MAIL_FROM = "dnfs@qsont.me"
|
# 多数邮箱服务商(163/QQ 等)强制 From 头与登录账号一致,故默认跟随 SMTP_USER;
|
||||||
|
# 仅当服务商允许自定义发件身份时才在 .env 里显式配 MAIL_FROM 覆盖
|
||||||
|
MAIL_FROM = os.environ.get("MAIL_FROM") or SMTP_USER
|
||||||
DEFAULT_SUBJECT = "DNFS 邮箱验证"
|
DEFAULT_SUBJECT = "DNFS 邮箱验证"
|
||||||
DEFAULT_CONTENT = "DNFS: 您的邮箱验证码为 {code},一分钟内有效。"
|
DEFAULT_CONTENT = "DNFS: 您的邮箱验证码为 {code},一分钟内有效。"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user