Django实战-日志邮件通知
- 2019 年 10 月 6 日
- 筆記

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
前一小节的日志分析任务中,将访问请求的信息按照指定格式存入 log 文件,在分析log 日志的请求次数、最大值、最小值以及平均值。线上发生错误时,需要及时去发现,可以使用django框架自带的错误日志发送邮件。

一、日志分析任务

二、配置邮件
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.qq.com' # EMAIL_PORT = 25 # EMAIL_USE_TLS = False # 加密 EMAIL_PORT = 465 EMAIL_HOST_USER = '**********@qq.com' # 填写授权码 EMAIL_HOST_PASSWORD = '*********' # 开启 TLS EMAIL_USE_TLS = True EMAIL_FROM = '*********@qq.com'

三、发送邮件
def report_by_mail(): logger.info("Begin statistics data.") content = statistics() # 换行符拆分 content = "rn".join(content) logger.info("End statistics data.") receivers = ["**********@qq.com"] # 说明、内容编码 msg = MIMEText(content, "plain", "utf-8") msg["FROM"] = "【 Django Backend】" msg["Subject"] = "【Django Service Performance Monitor】" server = smtplib.SMTP_SSL(settings.EMAIL_HOST, settings.EMAIL_PORT) server.set_debuglevel(1) server.login(settings.EMAIL_HOST_USER, settings.EMAIL_HOST_PASSWORD) server.sendmail(settings.EMAIL_FROM, receivers, msg.as_string()) server.close() logger.info("Send monitor Email success.")
if __name__ == "__main__": report_by_mail()