[Baypiggies] Failing at generating quoted-printable-encoded email
Matt Good
matt at matt-good.net
Fri Sep 26 02:23:24 CEST 2008
On Sep 25, 2008, at 3:27 PM, Asheesh Laroia wrote:
> Some quick background: I'm writing a(n open-source) app that
> generates emails. There are (at least) two ways to encode
> characters not generally fit for email: base64 and quoted-printable.
>
> It's easy to get proper base64-encoded output of email.mime.text:
>
> >>> mt = email.mime.text.MIMEText('Ta mère', 'plain', 'utf-8')
> >>> 'Content-Transfer-Encoding: base64' in mt.as_string()
> True
> >>> mt.as_string().split('\n')[-2]
> 'VGEgbcOocmU='
>
> There we go, all nice and base64'd.
>
> I can *not* figure out how to get quoted-printable-encoding.
There might be a better way, but this is the hack that Trac uses to
get qp working:
import email.mime.text
import email.charset
charset = email.charset.Charset('utf-8')
charset.header_encoding = email.charset.QP
charset.body_encoding = email.charset.QP
msg = email.mime.text.MIMEText('foo', 'plain')
# Message class computes the wrong type from MIMEText constructor,
# which does not take a Charset object as initializer. Reset the
# encoding type to force a new, valid evaluation
del msg['Content-Transfer-Encoding']
msg.set_charset(charset)
-- Matt
More information about the Baypiggies
mailing list