[issue9208] SMTPHandler in the logging module does not handle unicode strings
Vinay Sajip
report at bugs.python.org
Sun Aug 22 20:34:08 CEST 2010
Vinay Sajip <vinay_sajip at yahoo.co.uk> added the comment:
SMTPHandler provides an implementation for the simplest/most common case. Full support for encoding in emails is likely to be application-specific, i.e. no one-size-fits-all can be easily specified. For example, different encodings could be used for headers, subject and body - say, quoted-printable for the body and base64 for the subject. Unfortunately, support for quoted-printable requires a global state change, see for instance
http://radix.twistedmatrix.com/2010/07/how-to-send-good-unicode-email-with.html
so it seems not to be a good idea to implement in the logging package itself.
I would suggest implementing a handler which subclasses SMTPHandler and does the appropriate formatting as per (for example) the above post. To facilitate this, I coukd add two methods to SMTPHandler:
class SMTPHandler(logging.Handler):
def prepareEmail(self, record):
"""
Prepare a record for emailing, including setting up mail
headers doing all necessary encodings. Return a value
suitable for passing to the sendEmail method.
The default implementation will assume all-ASCII content
for headers and body, do no special encoding, and return a
string.
"""
def sendMail(self, smtp, msg):
"""
Send a message via the provided SMTP instance.
The default implementation will call smtplib.sendmail(),
passing the result from the prepareEmail method.
"""
I'm not yet sure if this would meet all use cases.
Marking as pending, awaiting feedback. Will close in a couple of weeks if no feedback received.
----------
status: open -> pending
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue9208>
_______________________________________
More information about the Python-bugs-list
mailing list