Estoy intentando usar el módulo logging
de Python para enviar correos electrónicos que contengan registros. El problema que estoy teniendo es que cada vez que escribo una entrada de registro, se envía un correo electrónico. ¿Cómo hago cola en los mensajes de registro y envío un solo correo electrónico al finalizar el script?SMTPHandler en el módulo de registro de Python enviando correos electrónicos de uno en uno. ¿Cómo puedo detener esto?
Tengo la sensación de que está hecho con el método emit()
, pero no sé cómo usarlo.
import logging, logging.handlers
log = logging.getLogger("mylogger")
log.setLevel(logging.DEBUG)
h2 = logging.handlers.SMTPHandler(mailhost='mailserver',
fromaddr='[email protected]',
toaddrs=['[email protected]'],
subject='The log',
credentials=('user','pwd'),
secure=None)
h2.setLevel(logging.INFO)
h2.setFormatter(f)
log.addHandler(h2)
log.info("Did something")
log.info("Did something else")
log.info("This would send a third email. :-(")
@VinaySajip - ¿Cuáles son sus pensamientos sobre el uso del módulo de smtplib para enviar mensajes de correo electrónico en su lugar.. ? – codingknob
@ algotr8der - Puede ver en el controlador de ejemplo que realmente usa 'smtplib' para enviar los correos electrónicos. –