Is the "Message ID" Email Header unique for each recipient?

According to RFC2822 - Internet Message Format, the short answer is that the "Message ID should be unique for each instance of the message"; however, the MESSAGE-ID field is considered optional and how the MESSAGE-ID field is created is up to the server. Quoted below:

The "Message-ID:" field provides a unique message identifier that refers to a particular version of a particular message. The uniqueness of the message identifier is guaranteed by the host that generates it (see below). This message identifier is intended to be machine readable and not necessarily meaningful to humans. A message identifier pertains to exactly one instantiation of a particular message; subsequent revisions to the message each receive new message identifiers. Note: There are many instances when messages are "changed", but those changes do not constitute a new instantiation of that message, and therefore the message would not get a new message identifier. For example, when messages are introduced into the transport system, they are often prepended with additional header fields such as trace fields (described in section 3.6.7) and resent fields (described in section 3.6.6). The addition of such header fields does not change the identity of the message and therefore the original "Message-ID:" field is retained. In all cases, it is the meaning that the sender of the message wishes to convey (i.e., whether this is the same message or a different message) that determines whether or not the "Message-ID:" field changes, not any particular syntactic difference that appears (or does not appear) in the message.


Typically, all recipients will receive exactly the same message, both body and headers, with the exception of headers that are added en-route (eg: "Received" headers). The Message-ID header is generated by the sender, so all recipients should see the same Message-ID.


for bulk mailing, it's better to be unique for each mail, the message id may be the only information your get back from spam notifications or bounces so it should be unique for each message.