# 11.12 Standard Module `rfc822`

This module defines a class, `Message`, which represents a collection of ``email headers'' as defined by the Internet standard RFC 822. It is used in various contexts, usually to read such headers from a file.

Note that there's a separate module to read Unix, MH, and MMDF style mailbox files: `mailbox`.

A `Message` instance is instantiated with an open file object as parameter. The optional `seekable` parameter indicates if the file object is seekable; the default value is 1 for true. Instantiation reads headers from the file up to a blank line and stores them in the instance; after instantiation, the file is positioned directly after the blank line that terminates the headers.

Input lines as read from the file may either be terminated by CR-LF or by a single linefeed; a terminating CR-LF is replaced by a single linefeed before the line is stored.

All header matching is done independent of upper or lower case; e.g. `m['From']`, `m['from']` and `m['FROM']` all yield the same result.

`parsedate` (date)
  Attempts to parse a date according to the rules in RFC822. however, some mailers don't follow that format as specified, so `parsedate()` tries to guess correctly in such cases. date is a string containing an RFC822 date, such as `"Mon, 20 Nov 1995 19:12:08 -0500"`. If it succeeds in parsing the date, `parsedate()` returns a 9-tuple that can be passed directly to `time.mktime()`; otherwise `None` will be returned.

`parsedate_tz` (date)
  Performs the same function as `parsedate`, but returns either `None` or a 10-tuple; the first 9 elements make up a tuple that can be passed directly to `time.mktime()`, and the tenth is the offset of the date's time zone from UTC (which is the official term for Greenwich Mean Time).

- 11.12.1 Message Objects