URL: https://linuxfr.org/forums/programmation-python/posts/smtphandler-et-unicode Title: SMTPHandler et unicode Authors: norbs Date: 2010年06月30日T02:35:45+02:00 Tags: Score: 0 Bonsoir à tous, J'ai un petit programme de test qui me permet de logguer par mail des messages d'erreur. Le problème est que ça ne fonctionne pas "par défaut", j'ai une UnicodeEncodeError lors de l'envoi de mail avec des caractères accentués. Je peux contourner le problème en changeant l'encoding par défaut de python (lignes en commentaire) mais ça ne me plaît pas trop, d'après mes lectures c'est juste un pis-aller ... Y a t'il une solution plus propre pour que le SMTPHandler fonctionne correctement ? A noter que le problème n'existe pas pour le RotatingFileHandler, il loggue bien les accents. import logging,logging.handlers import sys #print sys.getdefaultencoding() #reload(sys) #sys.setdefaultencoding('utf-8') #print sys.getdefaultencoding() fileHandler = logging.handlers.RotatingFileHandler("/tmp/log.log") smtpHandler = logging.handlers.SMTPHandler(mailhost=("smtp.example.com",25), fromaddr="toto@example.com", toaddrs="toto@example.com", subject=u"msg d'erreur") LOG = logging.getLogger() LOG.addHandler(fileHandler) LOG.addHandler(smtpHandler) LOG.error(u"sans accent") LOG.error(u"accentu\u00E9") Merci pour vos réflexions !