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()