On Tue, Apr 27, 2004 at 12:39:24PM +0200, Miquel van Smoorenburg wrote:
On 2004.04.27 09:53, Tom Alsberg wrote:
<snip /> Well, my MTA, as most others, does add a Return-Path: header. Usually it contains the same information as the From_ line, but not always,
I think that would be a bug.
Now that I checked it, you're right here...
IIRC (the Return-Path: header, IIRC, may be altered/added to by an SMTP relay in the way
No, the Return-Path header is not present at SMTP transport time. It is added the moment the message leaves the SMTP domain, i.e. the moment it drops into a local mbox (or is sent through another transport like UUCP).
True. Sorry for the confusion - had to refresh my understanding.
That is the same moment a From_ header is added, and the content should be the same.
Well, the From_ line is not a header. It is stored in Unix (traditional mbox style) mailboxes, and originally (as in - early Unix mail withing the host, where the "mail" command would just append the message into /var/mail/<username>, before Intenet/ARPAnet mail embraced with SMTP, etc.) was the only line stored except the message body, containing the username of the sender and the date. Nowadays, of course, it contains the full e-mail address (<username>@<domain>) in case the message travelled through the net.
while the envelope From_ line is guaranteed to remain as it was).
The From_ line is only retained over UUCP, no other transport has a From_ line in the message. SMTP certainly doesn't.
SMTP doesn't have a From_ line in the message, as it is not really part of the message, like the headers and body are. It is part of the SMTP protocol however, in a slightly different form:
In the SMTP protocol, sending a message begins with "MAIL FROM
<address>", and if the message goes through another server in the way, the relay over it will also begin with the same "MAIL FROM <address>" command. That, AFAIK, is called the SMTP envelope. At the end-point MTA, the FROM part of the SMTP envelope is written in the form of a "From " line. However, that's the same thing - so SMTP does actually retain that line in the protocol.
"MAIL FROM <address>" is the direct protocol to the "From " line leading a message in a traditional mbox file.
Well, when COPYing mailboxes over IMAP dovecot should be able to retain the From_ line I suppose
That's what I mean - when the IMAP COPY command is issued, the From_ line should be copied together with the rest of the actual message.
(if the internal API is rich enough) - but if the MUA does something like get message from folder A and write it to folder B (which many clients still do) the From_ line gets lost.
Well, if the MUA does this, then naturally dovecot can't do much else, so it makes sense that it invents its own line (although, as you mentioned, it could use the Return-Path: header). But it appears that most MUAs issue the COPY command properly.
I suppose the mbox folder code could get the basic info for the From_ line from the Return-Path: header if it is present. That's what my own mbox library for internal projects does...
That's possible. But I'd prefer it if when COPYing a message, it would just copy the "From " line verbatim as well, and not get into this trouble, even though I see now that the content should normally be the same (leave those semantics to the MTA...).
Mike.
Thanks, -- Tom
-- Tom Alsberg - hacker (being the best description fitting this space) Web page: http://www.cs.huji.ac.il/~alsbergt/ DISCLAIMER: The above message does not even necessarily represent what my fingers have typed on the keyboard, save anything further.