TIdMessage in Indy 10 intentionally skips the "Message-Id" header when encoding email to a socket or TStream. You will need to use the TIdMessage.ExtraHeaders property, for example:
IdMessage1.MsgId := ...';
IdMessage.ExtraHeaders.Values['Message-Id'] := IdMessage1.MsgId;
EDIT:
- TIdMessage , "Message-ID" "In-Reply-To":
http://indyproject.org/sockets/blogs/changelog/20160912.aspx
TIdMessage.MsgId "Message-ID" , , . ExtraHeaders.