Archived Forum Post

Index of archived forum posts

Question:

Custom Header Not Appearing in Bounced Email that Comes Back?

Sep 21 '16 at 16:05

I’d like to add some custom headers to an email, then read them back in if I receive a bounce email.

I add a custom header to the email I send like this:

email.AddHeaderField ("XYZ-messageCode", "testcode") 
In the program that iterates the bounced emails I have this:
str = email.GetHeaderField(("“XYZ-MessageCode")

However the string is Nothing. I have changed the priority to high via the header. If I iterate through the headers, none are the ones I’ve added via AddHeaderField.


Answer

You are expecting something that cannot be expected -- that the bounced email will also contain the same header (i.e. the email that comes back if the server decides to send a non-delivery notification of some sort). You have no control over what a remote mail server decides to send for a "bounce notification", or if it even decides to send anything at all. It is most likely that your custom headers will not be part of any NDR (non-delivery report) you receive, unless the mail server decides to send an entire copy of the original email in a sub-part of the NDR. In that case, you would have to identify it and parse it. Remember: there is no single "format" for bounced email. Mail servers and other programs send all sorts of ad-hoc non-delivery notifications..


Answer

I should also say that there are formats defined for NDR's (or MDN's) as shown here: https://www.example-code.com/csharp/emailObject_createMdn.asp

Also as shown here: https://tools.ietf.org/html/rfc3798

However, that does not mean a server will send a bounce notification in this format. It's possible, but it cannot be guaranteed, and there's no guarantee you'll get anything at all.