[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

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

David Erickson

1/24/2008 7:32:00 PM

I have been using the Email module and Message class for awhile,
however I have been unable to find a way to add a header to the top of
the email similar to what is done with Received: headers... the
add_header method only appends to the bottom. Is there someway this
can be done?

Thanks
David
6 Answers

Martin Marcher

1/24/2008 10:42:00 PM

0

On Thursday 24 January 2008 20:32 David Erickson wrote:

> I have been using the Email module and Message class for awhile,
> however I have been unable to find a way to add a header to the top of
> the email similar to what is done with Received: headers... the
> add_header method only appends to the bottom.  Is there someway this
> can be done?


if by bottom you mean added as the "new last" header than you don't have to
care, afaik email headers do not have a notion of order

e.g

To: bob@example.com
From: alice@example.com

is equal to

From: alice@example.com
To: bob@example.com


if by bottom you mean it's appended to the body...well that is a problem :)

hth
martin

--
http://noneisyours.ma...
http://feeds.feedburner.com/N...

You are not free to read this message,
by doing so, you have violated my licence
and are required to urinate publicly. Thank you.

David Erickson

1/25/2008 5:22:00 AM

0

On Jan 24, 2:41 pm, Martin Marcher <mar...@marcher.name> wrote:
> On Thursday 24 January 2008 20:32 David Erickson wrote:
>
> > I have been using the Email module and Message class for awhile,
> > however I have been unable to find a way to add a header to the top of
> > the email similar to what is done with Received: headers... the
> > add_header method only appends to the bottom. Is there someway this
> > can be done?
>
> if by bottom you mean added as the "new last" header than you don't have to
> care, afaik email headers do not have a notion of order
>
> e.g
>
> To: b...@example.com
> From: al...@example.com
>
> is equal to
>
> From: al...@example.com
> To: b...@example.com
>
> if by bottom you mean it's appended to the body...well that is a problem :)
>
> hth
> martin

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?

Thanks,
-David

Karlheinz Klingbeil

1/25/2008 1:04:00 PM

0

Am 25.01.2008, 06:21 Uhr, schrieb David Erickson <halcyon1981@gmail.com>:

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




--
Greetz, lunqual - http://www....
http://www.4... - Bilder
http://www.rezeptb... - Software für den Destillateur

David Erickson

1/26/2008 12:47:00 AM

0

On Jan 25, 5:04 am, "Karlheinz Klingbeil"
<karlheinz.klingb...@gmx.net> wrote:
> Am 25.01.2008, 06:21 Uhr, schrieb David Erickson <halcyon1...@gmail.com>:
>
> > 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
to
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
information.

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

-David

Karlheinz Klingbeil

1/26/2008 10:10:00 AM

0

Am 26.01.2008, 01:46 Uhr, schrieb David Erickson <halcyon1981@gmail.com>:

> It is important to note that the header fields are not guaranteed
> to
> 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
> information.
>
> 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).
>
> -David
You're right on that point, though it says clearly "It is important to
note that the header fields are not guaranteed to be in a particular
order."

So it's in my opinion a good idea not to expect headers to be ordered and
add headers in a way which doesn't conflict with a *possible* reordering.


--
Greetz, lunqual - http://www....
http://www.4... - Bilder
http://www.rezeptb... - Software für den Destillateur

Dennis Lee Bieber

1/27/2008 9:17:00 AM

0

On Sat, 26 Jan 2008 11:10:14 +0100, "Karlheinz Klingbeil"
<karlheinz.klingbeil@gmx.net> declaimed the following in
comp.lang.python:

> You're right on that point, though it says clearly "It is important to
> note that the header fields are not guaranteed to be in a particular
> order."
>
> So it's in my opinion a good idea not to expect headers to be ordered and
> add headers in a way which doesn't conflict with a *possible* reordering.

And, from what I've seen, the only headers that do show order are
those added in "passing" mail -- something easily done during the
streaming of the message... Add a "received" header, then copy the rest
of the message as-is, with no interpretation of the contents.

I have the impression most of the email libraries for Python are
aimed at the user clients, not transfer utilities.
--
Wulfraed Dennis Lee Bieber KD6MOG
wlfraed@ix.netcom.com wulfraed@bestiaria.com
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: web-asst@bestiaria.com)
HTTP://www.bestiaria.com/