ホームページ  >  記事  >  バックエンド開発  >  Pythonでメール送信ログを設定するにはどうすればよいですか?

Pythonでメール送信ログを設定するにはどうすればよいですか?

PHPz
PHPz転載
2023-04-26 17:28:081681ブラウズ

Pythonでメール送信ログを設定するにはどうすればよいですか?

数日前にグループ内で Python の設定メール送信ログについて質問した人がいて、かなり詳しいと思うので、落とし穴を避けるためにここに記録しておきます。未来。

  • Python のlogging.handlers.SMTPHandler メソッドを使用して、指定されたメールボックスにログを送信できます。以前は 163 個のメールボックス構成パラメータを使用しており、安心して使用できていますが、QQ の企業メールボックスを使用すると、常にエラーが発生し、ログインがタイムアウトしましたと表示されます。

Pythonでメール送信ログを設定するにはどうすればよいですか?

#最終的に、ログのソース コードを読んで理由がわかりました。ログはデフォルトで TLS 接続をサポートしています。QQ Enterprise Mailbox と Gmail は両方とも SSL 接続を使用します。

Pythonでメール送信ログを設定するにはどうすればよいですか?

    #最後に簡単な構成をアタッチします
  • # logging.conf完整配置
    [loggers]
    keys=root,test
    [handlers]
    keys=consoleHandler,fileHandler,testHandler
    [formatters]
    keys=simpleFormatter
    [formatter_simpleFormatter]
    format=%(asctime)s - %(name)s - %(levelname)s - %(message)s - [%(filename)s:%(lineno)s]
    datefmt=
    [logger_root]
    level=INFO
    handlers=consoleHandler,fileHandler
    [logger_test]
    level=INFO
    handlers=testHandler
    qualname=test
    propagate=0
    [handler_consoleHandler]
    class=StreamHandler
    level=INFO
    formatter=simpleFormatter
    args=(sys.stdout,)
    [handler_fileHandler]
    class=FileHandler
    level=INFO
    formatter=simpleFormatter
    args=('log/spider_db.log', 'a')
    [handler_testHandler]
    class=handlers.SMTPHandler
    level=INFO
    formatter=simpleFormatter
    args=(('smtp.163.com',25), 'username@163.com', ['somebody01@example.com','somebody02@example.com'], 'Test SMTPHandler', ('username', 'password'))
    python
    # 邮件测试例子
    import logging
    import logging.config
    logging.config.fileConfig("logging.conf")
    logger = logging.getLogger('test')
    logger.info('hello body ~')


以上がPythonでメール送信ログを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。