Under normal circumstances, when reviewing the Exim Logs you can usually find a field labeled like the following:
Again under normal circumstances, that same message ID can be found in the maillog:
# grep email@example.com /var/log/maillog
Jan 24 03:21:21 exampleServer dovecot: lmtp(firstname.lastname@example.org)<11888><iB7cHaHZDGBwLgAA573ANA>: msgid=<email@example.com>: saved mail to INBOX
And finally, under normal circumstances, you'll also find the message ID within the headers of the message. You can learn how to find the headers of a message here:
You may find that the message ID is missing from all of those locations for some messages.
If the message ID is missing from a message, that means that the email client that was used to generate the message did not generate the message ID, or the message ID was removed before it arrived to your cPanel server.
The message ID for an incoming message is not removed or altered by Exim on a cPanel server with the default configuration.
More information can be found in the RFCs:
IETF Request For Comments (RFC) 2392 - Content-ID and Message-ID Uniform Resource Locators
IETF Request For Comments (RFC) 5322 - Internet Message Format
The Exim documentation makes reference to a configuration to set "Submission mode for non-local messages" here:
Submission mode for non-local messages
To quote a small part of that section:
With this setting, Exim still fixes up messages by adding Date: and Message-ID: header lines if they are missing, but makes no attempt to check sender authenticity in header lines.
This may or may not offer you a potential solution depending on your specific situation. You should consult with a systems administrator that has the skills, training, and expertise required to determine if this is a solution that might work for you. This kind of custom configuration is not related to cPanel or the basic configuration of cPanel.
If you decide to try testing this configuration, you'll need to use the Advanced Editor for Exim: