完整代码
from loguru import logger
from notifiers import get_notifier
# 获取电子邮件通知器
notifier = get_notifier("email")
# 配置电子邮件通知参数
email_params = {
"username": "xxxxx@163.com", # 发送邮件的用户名,我这里用的163邮箱
"password": "xxxxxxxxxx", # 输入密码可能不行,需要用授权码,后续会提到
"from": "xxx@163.com", # 发送邮件的邮箱
"to": "xxxx@163.com", # 接收邮件的邮箱
"host": "smtp.163.com", # 默认参数,直接复制就行
"port": 465, # 默认参数,直接复制就行
"tls": False, # 默认参数,直接复制就行
"ssl": True, # 使用 SSL 加密连接
"subject": "Loguru Error Notification" # 发送的邮件主题
}
# 定义一个函数,用于将错误日志发送到电子邮件
def send_email_notification(message):
# 打印调试信息
logger.debug(f"Preparing to send email with message: {message}")
# 将错误日志消息作为邮件内容
email_params["message"] = message
# 返回值是响应信息
response = notifier.notify(**email_params)
# 打印相应信息
logger.debug(f"Email send response: {response}")
# 配置 Loguru,将错误信息发送到电子邮件
def configure_logger():
# 在日志中记录ERROR时,将触发 send_email_notification 函数来发送邮件通知。
logger.add(send_email_notification, level="ERROR")
if __name__ == "__main__":
configure_logger()
try:
1 / 0
except ZeroDivisionError:
logger.error("An error occurred: Division by zero")
配置163邮箱
因为国内的邮箱仅通过用户名密码是登录不上的,因为现在国内登录都需要手机号验证等二次验证,所以我们需要配置好IMAP/SMTP
和POP3/SMTP
具体操作在网页版还不行,需要下载手机版的网易邮箱大师
在我->我的邮箱->三方登录管理中打开
打开后会给你一个登录的授权码,输入到password
中