Archived Forum Post

Index of archived forum posts

Question:

BCC Email Addresses not in the MIME Header?

Jan 22 '17 at 14:44

Regarding your solution everything works perfectly excepting one functionality. I need this a lot so I really appreciate a solution (I think is an object bug). The Bcc e-mails are lost when I get the Mime before appending to the MailBox. The same behaviour if I save as eml.


Accepted Answer

The meaning of "BCC" is that it's a Blind Carbon Copy. The intent of BCC is that a BCC recipient also receives the email, but his/her email address is NOT included in the email header. If it were included in the mail header, it would no longer be "blind". The other recipients could easily see the BCC recipients. Thus, the BCC would become no different than a CC email address, and one may as well just specify the BCC addresses as CC addresses instead.

An SMTP client communicates with an SMTP server to send an email. Part of the protocol is to send a "RCPT TO" command for each email recipient. This includes all recipients: TO, CC, and BCC. The final step of the protocol is to send the full MIME of the email. This (of course) includes the MIME header, which includes the TO and CC header fields. The recipients of the email receive only the MIME, and can see the other recipients via the TO and CC header fields. If the BCC addresses were included in a "BCC" MIME header field, then they would no longer be blind.

If one wishes to save a copy of the email, along with a record of the BCC recipients, there are two options:

1) Use email.GetXml to get the email in an XML format where the BCC recipients are emitted to a part of the XML.

or

2) Write code to build a string of all BCC recipients, perhaps building a comma separated list. Then call emailObject.AddHeaderField to explicitly add a header. For example: emailObject.AddHeaderField("x-bcc-addrs",commaSeparatedBccAddrStr)


Answer

Thank you for your fast answer and helping so much.

The second option seems to work perfectly. The only thing is that I had to use "Bcc" instead of "x-bb-addrs" as header.

All best.