Email module, how to add header to the top of an email?

David Erickson halcyon1981 at
Sat Jan 26 01:46:59 CET 2008

On Jan 25, 5:04 am, "Karlheinz Klingbeil"
<karlheinz.klingb... at> wrote:
> Am 25.01.2008, 06:21 Uhr, schrieb David Erickson <halcyon1... at>:
> > Bottom of the headers... but I am looking to insert at the top, and re-
> > ordering/inserting does matter depending on what type of header you
> > are, received headers for example must be inserted at the top of the
> > header list so you can watch the progression of the email.  I was
> > unable to find a clean way to do this via the API which seems very
> > strange to me.. but perhaps I am just missing something?
> I think your are really missing something. First, Email-headers are
> unordered
> and every relay can, and probably will,  rearrange them, add or delete
> headers.
> You therefore most definitely should not add any headers which are
> position-dependent.
> If you want to track mails somehow, add headers with timestamps.
> This way you can watch the progression of an email without being
> dependend on "sorted" headerlines.

This is incorrect, quoting directly from RFC 2822:

   It is important to note that the header fields are not guaranteed
   be in a particular order.  They may appear in any order, and they
   have been known to be reordered occasionally when transported over
   the Internet.  However, for the purposes of this standard, header
   fields SHOULD NOT be reordered when a message is transported or
   transformed.  More importantly, the trace header fields and resent
   header fields MUST NOT be reordered, and SHOULD be kept in blocks
   prepended to the message.  See sections 3.6.6 and 3.6.7 for more

Trace header fields are not to be ordered, and should be prepended
when added to a message.  Now that said I am not trying to track
anything, I simply want to prepend my additional headers onto the top
of the email, and seem to be unable to do that via the API, which I
think ought to be possible.  If for example I was writing some kind of
an SMTP server with Python and needed to add said trace headers they
would need to be prepended, and currently cannot be (without doing it
by hand).


More information about the Python-list mailing list