簡體   English   中英

將 Python SMTPHandler 記錄到 CLI SMTP 服務器的電子郵件中

[英]Logging Python SMTPHandler into emails for CLI SMTP Server

目標是完成 Flask 教程,其中使用 logging.handler.SMTPHandler 將日志從 Python 發送到 SMTP 調試服務器。

Python 服務器在 windows cli 下運行,以管理員身份打開一個新的 windows CLI 並運行:
python -m smtpd -n -c DebuggingServer localhost:1025

要對其進行測試,以下代碼應該可以工作:

import logging
import sys

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

smtpHandler = logging.handlers.SMTPHandler(
    mailhost = ("localhost",8025),
    fromaddr = "alerts@localhost",
    toaddrs = "geo555@localhost",
    subject = "alert!"
)

smtpHandler.setLevel(logging.DEBUG)
logger.debug("here is the test logging for u.")

到目前為止已經嘗試過,調試服務器中沒有出現任何消息:

什么可以是一個非常簡單的示例可以做到這一點,否則使用調試文件也可以。 干杯。

我認為您錯過了將 stmpHandler 添加到記錄器: logger.addHandler(smtpHandler)

以下是完整的工作代碼:

import logging
import logging.handlers
import sys

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

sender = "emailuser@localhost"
pwd = "pass123"

smtpHandler = logging.handlers.SMTPHandler(
    mailhost=("localhost", 25),
    fromaddr="noreply@example.com",
    toaddrs="user@email.com",
    subject="alert!",
    credentials=(sender, pwd),
)

smtpHandler.setLevel(logging.DEBUG)

# add this line
logger.addHandler(smtpHandler)

logger.debug("here is the test logging for u.")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM