When sending an email using the MailMessage class (System.Net.Mail namespace) in an ASP.NET website, certain email headers like Message-ID are not always set.
If a Message-ID header is missing, email might be blocked by the recipients SMTP server. Therefor it is necessary to set such headers.
Add custom headers to System.Net.Mail.
Add custom header in MailMessage class / System.Net.Mail Namespace
You set a Message-ID, or any other custom header, with the Message.Headers property and .Add method:
Message.Headers.Add("Message-Id", "<" + Guid.NewGuid().ToString() + "@example.com>");
Substitute example.com with your own domain name.
Custom headers
You can use this for other, custom headers as well, for example:
Message.Headers.Add("X-Instance-ID", Convert.ToString(InstanceID[0]));