[Python-Dev] headers api for email package
Chris Withers
chris at simplistix.co.uk
Sat Apr 11 14:39:40 CEST 2009
Barry Warsaw wrote:
> >>> message['Subject']
>
> The raw bytes or the decoded unicode?
A header object.
> Okay, so you've picked one. Now how do you spell the other way?
str(message['Subject'])
bytes(message['Subject'])
> Now, setting headers. Sometimes you have some unicode thing and
> sometimes you have some bytes. You need to end up with bytes in the
> ASCII range and you'd like to leave the header value unencoded if so.
> But in both cases, you might have bytes or characters outside that
> range, so you need an explicit encoding, defaulting to utf-8 probably.
>
> >>> Message.set_header('Subject', 'Some text', encoding='utf-8')
> >>> Message.set_header('Subject', b'Some bytes')
Where you just want "a damned valid email and stop making my life hard!":
Message['Subject']='Some text'
Where you care about what encoding is used:
Message['Subject']=Header('Some text',encoding='utf-8')
If you have bytes, for whatever reason:
Message['Subject']=b'some bytes'.decode('utf-8')
...because only you know what encoding those bytes use!
> One of those maps to
>
> >>> message['Subject'] = ???
...should only accept text or a Header object.
Chris
--
Simplistix - Content Management, Zope & Python Consulting
- http://www.simplistix.co.uk
More information about the Python-Dev
mailing list