(Question from Chilkat customer via email)
How can I explicitly set the Message-ID header when sending email?
The Message-ID header is somewhat special because it should be unique for each email sent. It is also one of the default header fields that is added whenever a new Chilkat email object is instantiated.
The answer to this question involves the mailman.AutoGenMessageId property, which has a default value of True. The online reference documentation provides more information, but I'll reproduce it here:
"Controls whether a unique Message-ID header is auto-generated for each email sent.
The Message-ID header field should contain a unique message ID for each email that is sent. The default behavior is to auto-generate this header field at the time the message is sent. This makes it easier for the same email object to be re-used. If the message ID is not unique, the SMTP server may consider the message to be a duplicate of one that has already been sent, and may discard it without sending. This property controls whether message IDs are automatically generated. If auto-generation is turned on (true), the value returned by GetHeaderField("Message-ID") will not reflect the actual message ID that gets sent with the email.
To turn off automatic Message-ID generation, set this property to false."
Once AutoGenMessageId is turned off, the Message-ID header may be added/changed just like any other header field (via the email.AddHeaderField method, which adds or replaces a header field).
You're very welcome. I think your custom Message-ID might be invalid because it's missing the "<" and ">" delimiters at each end. For example, try changing your code to this:
Best Regards, Matt