It can be surprising, but this is quite normal in SMTP protocol. A message is composed of headers and a body. It is send over a chain of Mail Transport Agents. No agent should change the body, but they can change the headers, mainly to add a Received
field, a Date
field if it is not present and any other field as required by their own processing. But neither the To
nor the From
field are special, and in particular they are not used to deliver the mail. The MTA use what is called the enveloppe, that is what is passed in the MAIL FROM
and RCPT TO
commands of SMTP protocol.
Mail User Agents (like Thunderbird) do use the To, Cc and Bcc fields to build the enveloppe, but if you know the SMTP protocol, it is easy to send a mail with forged or absent To and From headers.