Hi,
I'd propose to split the information which was stored
in the RFC822 header into two, completely separate headers
(maybe "header" isn't a good word anymore):
- The inner header contains the data oriented to the
message as generated at the sender's MUA, such as
From: , To:, Date:, Subject: and such things.
This header and the message body form the payload
and will never ever be modified within mail transport.
(Conversion of character encoding and such stone age
things are obsoleted.)
Any Signature, Encryption, Message Digest (e.g. as part
of the message ID) do apply on this payload and thus
this payload is a sequence of octets that will never change.
Mime encoding is a matter of this inner container only.
- The outer header (might be called "envelope") will be
modified and extended by transport relays (Received:,
address rewriting, etc.)
It would contain things like envelope sender, envelope recipient,
the message tag I've recently proposed,
Whatever transport mechanism is used, either SMTP-like pushing,
NNTP-like broadcast/multicast/pull, or mailing-list-like multicast,
when relayed, forwarded, gatewayed or whatever, this should
always affect the envelope only.
regards
Hadmut