Pythonのloggingで、GMailのSMTPサーバからメールを送信したいときの設定
忘備録として。
はまった点はsecureに空のタプルを指定するという点。
とりあえずこれで動いてはいますが、本当にそれでいいのかというのはよく分かっていません。
LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'handlers': { 'mail_handlers': { 'level': 'ERROR', 'class': 'logging.handlers.SMTPHandler', 'mailhost': ('smtp.gmail.com', 587), 'fromaddr': 'from_mail@gmail.com', 'toaddrs': ['to_mail_1@a.com', 'to_mail_2@a.com'], 'subject': 'error log', 'credentials': ('from_mail@gmail.com', 'password'), 'secure': (), } }, 'loggers': { '': { 'handlers': ['mail_handlers'], 'level': 'DEBUG', } } }
あとは、こんな感じの書き方で直に出力することも可能ですね。
import logging from logging.handlers import SMTPHandler mailhost = ('smtp.gmail.com', 587) fromaddr = 'from_mail@gmail.com' toaddrs = ['to_mail_1@a.com', 'to_mail_2@a.com'] subject = 'error log' credentials = ('from_mail@gmail.com', 'password') secure = () handler = SMTPHandler(mailhost, fromaddr, toaddrs, subject, credentials, secure) logger = logging.getLogger('root') logger.addHandler(handler) logger.error('logging test')
それにしてもあんまり情報がないところ、みんなGMailで送信はしていないんじゃないかなと思ったりしてます。