fix: smtp .env 手动解析替代 dotenv,同时支持 KEY=VALUE 和 KEY VALUE 格式
This commit is contained in:
1 parent
df518d1adb
commit
6330e04474
2 files changed
+19
-6
No files matched your search
@@ -1,3 +1,2 @@
|
|||||||
../pymsg
|
../pymsg
|
||||||
python-dotenv
|
|
||||||
nuitka
|
nuitka
|
||||||
+19
-5
@@ -27,11 +27,25 @@ import threading
|
|||||||
import time
|
import time
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
|
|
||||||
try:
|
# 手动加载 .env(支持 KEY=VALUE 和 KEY VALUE 两种格式,容忍空行/注释/引号)
|
||||||
from dotenv import load_dotenv
|
_env_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env")
|
||||||
load_dotenv(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env"))
|
if os.path.isfile(_env_path):
|
||||||
except ImportError:
|
with open(_env_path, "r") as _f:
|
||||||
pass # 无 dotenv 时直接读进程环境变量
|
for _line in _f:
|
||||||
|
_line = _line.strip()
|
||||||
|
if not _line or _line.startswith("#"):
|
||||||
|
continue
|
||||||
|
# 支持 KEY=VALUE 与 KEY VALUE 两种写法
|
||||||
|
if "=" in _line:
|
||||||
|
_key, _, _val = _line.partition("=")
|
||||||
|
else:
|
||||||
|
_parts = _line.split(None, 1)
|
||||||
|
_key = _parts[0]
|
||||||
|
_val = _parts[1] if len(_parts) > 1 else ""
|
||||||
|
_key = _key.strip()
|
||||||
|
_val = _val.strip().strip("\"'")
|
||||||
|
if _key and _key not in os.environ:
|
||||||
|
os.environ[_key] = _val
|
||||||
|
|
||||||
from log_client import logs
|
from log_client import logs
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user