The email package does have a 'parser headers only' mode, but it doesn't do what you want, since it reads the remainder of the file and sets it as the payload of the single, un-nested Message object it returns.
Adding a flag to tell it to stop parsing instead of doing that will probably be fairly simple, but is a feature request.
However, I'm not clear on how that helps. Doesn't FieldStorage also load everything into memory?
There's an open feature request for providing a way to use alternate backing stores for the bodies of message parts in the email package, which *would* address this issue. |