Message-ID, privacy and uniqueness
Arnt Gulbrandsen <[email protected]> Fri, 29 May 2026 10:47:04 +0200
| Newsgroups | gmane.mail.mutt.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, https://gitlab.com/muttmua/mutt/-/work_items/453 notes that some people consider the local hostname to be private information, and requests that Message-ID not contain the local hostname. Some MUAs use the sending domain, which I don't really like. It's fine for your own domain, but many people use gmail addresses. Message-ID: <[email protected]> needs a LOT of entropy in the localpart in order to be safely unique. However, the sending domain isn't conveniently available at that spot in the code. Another alternative is to use a domain from the MUA, I like that better, so I suggest the below as a solution for #453. The repeated %r gives 120 bits of entropy while keeping the message-id fairly short. I removed the time. I don't see the value of including the time, it's bulky and reminds me of the passage on Knuth vol 2 where he "attempted to create a fantastically good", etc. The best protection against clashing message-ids is IMO to spend the entire length on high-entropy randomness and avoid low-entropy components like the time. If we can increase the length, it's IMO better to spend the extra length on more entropy. Arnt diff --git a/init.h b/init.h index af684866..ae3760f9 100644 --- a/init.h +++ b/init.h @@ -2202,7 +2202,7 @@ struct option_t MuttVars[] = { { "msg_format", DT_SYN, R_NONE, {.p="message_format"}, {.p=0} }, /* */ - { "message_id_format", DT_STR, R_NONE, {.p=&MessageIdFormat}, {.p="<%z@%f>"} }, + { "message_id_format", DT_STR, R_NONE, {.p=&MessageIdFormat}, {.p="<%r%r%r%r%[email protected]>"} }, /* ** .pp ** This variable describes the format of the Message-ID generated