Re: fixing the current email module
Barry Warsaw <[email protected]> Thu, 8 Oct 2009 15:49:58 -0400
| Newsgroups | gmane.comp.python.mime.devel |
|---|---|
| Message-ID | <[email protected]> |
On Oct 8, 2009, at 11:09 AM, Stephen J. Turnbull wrote:
> Barry Warsaw writes:
>
>>>>> from email import message_from_string
>>>>> with open('/dev/urandom') as wire:
>> ... data = wire.read(1024)
>> ...
>
> # insert A
>
>>>>> msg = message_from_string(data)
>>>>> # number of headers
>> ... len(msg)
>> 0
>>>>> len(msg.get_payload())
>> 1024
>>>>> msg.defects
>> []
>>
>> This actually makes perfect sense. A message with no headers and a
>> mass of 1024 bytes in its payload is RFC valid!
>
> If you insert at A
>
>>>> wire = "".join(chr(ord(ch) & 127) for ch in wire)
>>>> # optional with reasonably high probability:
>>>> wire = wire[0:512] + "\r\n" + wire[512:1024]
>
> or similar. Otherwise not. ;-)
Right! That makes it legal.
What's interesting of course is that the parser can (and I submit,
still should) handle the stream even without that.
-Barry
PGP.sig
(application/pgp-signature, 832 B) - not displayed