What is the difference between a message-ID and a thread-ID?
Still have a question, spotted an error, or have a better explanation or a source we should cite?
A Message-ID is a unique identifier for a single email. Every email that leaves a mail server gets its own Message-ID, generated automatically. It looks like this: <20231215143022.abc123@example.com>. The receiving server uses it to prevent duplicate delivery (if the same email arrives twice, the Message-ID tells the server to ignore the second copy).
A Thread-ID (technically called In-Reply-To and References headers) links related emails together into a conversation thread. When you reply to an email, your mail client copies the original email's Message-ID into the reply's In-Reply-To header. That's how Gmail, Outlook, and Apple Mail know which emails belong in the same conversation view.
Here's the practical difference: Message-ID is for the servers (prevents duplicates, tracks delivery). Thread-ID headers are for the humans (groups emails into conversations in your inbox).
As an email sender, you don't need to do anything about Message-IDs. Your ESP or mail server generates them automatically. Thread-IDs only matter if you're sending reply-chain emails (customer support threads, Gmail's "On [date], you wrote..." style). Most marketing email doesn't use threading because each campaign is standalone.
One edge case worth knowing: some ESPs reuse Message-IDs across sends (bad practice, causes delivery issues). If you're seeing duplicate suppression problems or missing emails, that's worth checking. But honestly, if you're not running a custom mail server or building a support ticket system, you'll never need to think about these headers.
Contributors
Who worked on this answer
Every name links to their profile. Every company links to their site. Real people, real accountability.