The rfc822 Module

The rfc822 module contains a parser for mail and news messages (and any other messages that conform to the RFC 822 standard, such as HTTP headers).

Basically, an RFC 822style message consists of a number of header fields, followed by at least one blank line, and the message body itself.

For example, here's a short mail message. The first five lines make up the message header, and the actual message (a single line, in this case) follows after an empty line:

Message-Id: <20001114144603.00abb310@oreilly.com>
Date: Tue, 14 Nov 2000 14:55:07 -0500
To: "Fredrik Lundh" 
From: Frank
Subject: Re: python library book!

Where is it?

Example 6-1 shows how the message parser reads the headers and returns a dictionary-like object, with the message headers as keys.

Example 6-1. Using the rfc822 Module

File: rfc822-example-1.py

import rfc822

file = open("samples/sample.eml")

message = rfc822.Message(file)

for k, v in message.items():
 print k, "=", v

print len(file.read()), "bytes in body"

subject = Re: python library book!
from = "Frank" 
message-id = <20001114144603.00abb310@oreilly.com>
to = "Fredrik Lundh" 
date = Tue, 14 Nov 2000 14:55:07 -0500
25 bytes in body

The message object also provides a couple of convenience methods, which parse address fields and dates for you, as shown in Example 6-2.

Example 6-2. Parsing Header Fields Using the rfc822 Module

File: rfc822-example-2.py

import rfc822

file = open("samples/sample.eml")

message = rfc822.Message(file)

print message.getdate("date")
print message.getaddr("from")
print message.getaddrlist("to")

(2000, 11, 14, 14, 55, 7, 0, 0, 0)
('Frank', 'your@editor')
[('Fredrik Lundh', 'fredrik@effbot.org')]

The address fields are parsed into (mail, real name) tuples. The date field is parsed into a 9-element time tuple, ready for use with the time module.

Core Modules

More Standard Modules

Threads and Processes

Data Representation

File Formats

Mail and News Message Processing

Network Protocols

Internationalization

Multimedia Modules

Data Storage

Tools and Utilities

Platform-Specific Modules

Implementation Support Modules

Other Modules



Python Standard Library
Python Standard Library (Nutshell Handbooks) with
ISBN: 0596000960
EAN: 2147483647
Year: 2000
Pages: 252
Authors: Fredrik Lundh

Flylib.com © 2008-2020.
If you may any questions please contact us: flylib@qtcs.net