From 6292624d41c62516cb44d30e6b7dcbec00728ebe Mon Sep 17 00:00:00 2001 From: DLmaster Date: Wed, 5 Mar 2025 14:34:15 +0800 Subject: [PATCH] =?UTF-8?q?fix(services):=20=E6=B7=BB=E5=8A=A0=E9=82=AE?= =?UTF-8?q?=E7=AE=B1=E9=80=9A=E7=9F=A5=E6=A0=A1=E9=AA=8C=E8=BF=87=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/notification.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/services/notification.py b/app/services/notification.py index b5b0566..8d2fcca 100644 --- a/app/services/notification.py +++ b/app/services/notification.py @@ -27,6 +27,7 @@ v4.2 import requests from loguru import logger from plyer import notification +import re import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart @@ -58,11 +59,38 @@ class Notification: return True - def send_mail(self, mode, title, content): + def send_mail(self, mode, title, content) -> None: """推送邮件通知""" if Config.global_config.get(Config.global_config.notify_IfSendMail): + if ( + Config.global_config.get(Config.global_config.notify_SMTPServerAddress) + == "" + or Config.global_config.get( + Config.global_config.notify_AuthorizationCode + ) + == "" + or not bool( + re.match( + r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$", + Config.global_config.get( + Config.global_config.notify_FromAddress + ), + ) + ) + or not bool( + re.match( + r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$", + Config.global_config.get(Config.global_config.notify_ToAddress), + ) + ) + ): + logger.error( + "请正确设置邮件通知的SMTP服务器地址、授权码、发件人地址和收件人地址" + ) + return None + try: # 定义邮件正文 if mode == "文本":