When an email is forwarded, does it lose its original headers?

Solution 1:

Forwarding, in a mail client (MUA), usually means sending a new mail, with the original mail included in the body or as an attachment. Depending on the client, the headers of the original mail may be included verbatim (e.g., mutt) or only in a highly abridged fashion (e.g., outlook).

Some MUAs offer a remail command (it could be called something else such as resend or bounce, or be an option to the forward command). This resends the mail with exactly the same headers as when it was delivered. Delivery of a mail can change some headers (e.g., virus/spam scanners recording the result of their analysis), so the second recipient may not see exactly the same headers as the first.

Forwarding, in a mail server (MTA), means that the mail is resent to another system for delivery there. MTAs normally add a Received: header at the very beginning when they receive a mail, so each forwarding server adds its own mark. Forwarding normally doesn't affect existing headers, unless the MTA has been specifically directed to rewrite some headers.

There are a few headers that are more likely than others to be rewritten by an MTA on forward. For example, some MTAs will rewrite X-Envelope-… headers to match the envelope they see instead of the envelope the previous MTA (that added the X-Envelope-… header) saw. More and more MTAs are configured to add some headers for spam and spoofing prevention, and they may throw away any existing header with the same name; there is a lot of variety in those.

Solution 2:

Yes and No, it depends on how the email was forwarded. Generally, if it is forwarded as an attachment, then yes it does. This is really remailing and is usually attached as a MIME (message/rfc822) attachment.

Forwarding inline can, but not necessarily, so check your specific client to find out.