[Email-SIG] fixing the current email module

Stephen J. Turnbull stephen at xemacs.org
Thu Oct 8 17:09:54 CEST 2009


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. ;-)


More information about the Email-SIG mailing list