SMTP 邮件自定义设置

This commit is contained in:
Akimio521 2024-02-25 15:48:13 +08:00
parent e7b7df374a
commit 0211d71c5b

View File

@ -677,50 +677,74 @@ def aibotk(title: str, content: str, **kwargs) -> None:
print(f'智能微秘书 推送失败!{response["error"]}') print(f'智能微秘书 推送失败!{response["error"]}')
def smtp(title: str, content: str) -> None: def smtp(title: str, content: str, **kwargs) -> None:
""" """
使用 SMTP 邮件 推送消息 使用 SMTP 邮件 推送消息
""" """
if ( if not ((
not push_config.get("SMTP_SERVER") kwargs.get("SMTP_SERVER")
or not push_config.get("SMTP_SSL") and kwargs.get("SMTP_SSL")
or not push_config.get("SMTP_EMAIL") and kwargs.get("SMTP_EMAIL")
or not push_config.get("SMTP_PASSWORD") and kwargs.get("SMTP_PASSWORD")
or not push_config.get("SMTP_NAME") and kwargs.get("SMTP_NAME")
): ) or (
push_config.get("SMTP_SERVER")
and push_config.get("SMTP_SSL")
and push_config.get("SMTP_EMAIL")
and push_config.get("SMTP_PASSWORD")
and push_config.get("SMTP_NAME")
)):
print( print(
"SMTP 邮件 的 SMTP_SERVER 或者 SMTP_SSL 或者 SMTP_EMAIL 或者 SMTP_PASSWORD 或者 SMTP_NAME 未设置!!\n取消推送" "SMTP 邮件 的 SMTP_SERVER 或者 SMTP_SSL 或者 SMTP_EMAIL 或者 SMTP_PASSWORD 或者 SMTP_NAME 未设置!!\n取消推送"
) )
return return
print("SMTP 邮件 服务启动") print("SMTP 邮件 服务启动")
if (
kwargs.get("SMTP_SERVER")
and kwargs.get("SMTP_SSL")
and kwargs.get("SMTP_EMAIL")
and kwargs.get("SMTP_PASSWORD")
and kwargs.get("SMTP_NAME")
):
SMTP_SERVER = kwargs.get("SMTP_SERVER")
SMTP_SSL = kwargs.get("SMTP_SSL")
SMTP_EMAIL = kwargs.get("SMTP_EMAIL")
SMTP_PASSWORD = kwargs.get("SMTP_PASSWORD")
SMTP_NAME = kwargs.get("SMTP_NAME")
else:
SMTP_SERVER = push_config.get("SMTP_SERVER")
SMTP_SSL = push_config.get("SMTP_SSL")
SMTP_EMAIL = push_config.get("SMTP_EMAIL")
SMTP_PASSWORD = push_config.get("SMTP_PASSWORD")
SMTP_NAME = push_config.get("SMTP_NAME")
message = MIMEText(content, "plain", "utf-8") message = MIMEText(content, "plain", "utf-8")
message["From"] = formataddr( message["From"] = formataddr(
( (
Header(push_config.get("SMTP_NAME"), "utf-8").encode(), Header(SMTP_NAME, "utf-8").encode(),
push_config.get("SMTP_EMAIL"), SMTP_EMAIL,
) )
) )
message["To"] = formataddr( message["To"] = formataddr(
( (
Header(push_config.get("SMTP_NAME"), "utf-8").encode(), Header(SMTP_NAME, "utf-8").encode(),
push_config.get("SMTP_EMAIL"), SMTP_EMAIL,
) )
) )
message["Subject"] = Header(title, "utf-8") message["Subject"] = Header(title, "utf-8")
try: try:
smtp_server = ( smtp_server = (
smtplib.SMTP_SSL(push_config.get("SMTP_SERVER")) smtplib.SMTP_SSL(SMTP_SERVER)
if push_config.get("SMTP_SSL") == "true" if SMTP_SSL == "true"
else smtplib.SMTP(push_config.get("SMTP_SERVER")) else smtplib.SMTP(SMTP_SERVER)
) )
smtp_server.login( smtp_server.login(
push_config.get("SMTP_EMAIL"), push_config.get("SMTP_PASSWORD") SMTP_EMAIL, SMTP_PASSWORD
) )
smtp_server.sendmail( smtp_server.sendmail(
push_config.get("SMTP_EMAIL"), SMTP_EMAIL,
push_config.get("SMTP_EMAIL"), SMTP_EMAIL,
message.as_bytes(), message.as_bytes(),
) )
smtp_server.close() smtp_server.close()