完整代码
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 / 0except ZeroDivisionError:logger.error("An error occurred: Division by zero")
配置163邮箱
因为国内的邮箱仅通过用户名密码是登录不上的,因为现在国内登录都需要手机号验证等二次验证,所以我们需要配置好IMAP/SMTP
和POP3/SMTP
具体操作在网页版还不行,需要下载手机版的网易邮箱大师
在我->我的邮箱->三方登录管理中打开
打开后会给你一个登录的授权码,输入到password
中