Exchange server not writing a "To: " header for BCC'd messages

5,933

Solution 1

Ian,

So first let me share some background on how Exchange processes BCC information, there's a good article here: http://gsexdev.blogspot.com/2011/06/processing-bccs-in-exchange-transport.html

You can also find information that alludes to how Exchange processes BCC's here: https://superuser.com/questions/476620/finding-bcc-in-internet-mail-headers

Further, I'm going to simply copy/paste this MS employee's answer since it explains it well enough: http://social.technet.microsoft.com/Forums/exchange/en-US/faa6a8f4-7192-406f-bf7c-f41b52473e37/exchange-or-outlook-rule?forum=exchangesvrsecuremessaging

The fields shown in the UI in outlook client have nothing to do with email delivery. They are there for user convenience. When you have outlook client send a message, it compiles an aggregate list of all recipients specified in the (To, Cc, and Bcc) fields displayed in its UI. Using this list of recipients, outlook then issues a RCPT-TO command to the mail server for each recipient. Once that is done, outlook issues one (just one) DATA command that contains your message (headers, blank delimiter line, and body). The mail server has no clue which recipient was specified in which field and it doesn't care. It has been told who are the recipients by the list of RCPT-TO commands that it received. The recipients never get to see the original list of RCPT-TO commands that the sender issued to their sending mail server.

The headers in the message (what gets sent during the DATA command) is whatever outlook puts there. Email clients are NOT supposed to include the Bcc field in their header section in the message but some legacy clients did. Outlook should only insert To and Cc headers that match on the values specified in the To and Cc fields in UI. Since the Bcc field was never copied to a Bcc header in the message, there is nothing within the message's headers to indicate who were the Bcc'ed recipients. And since recipients never get to see the list of RCPT-TO commands issued by the sender to their mail server, there is no way for the recipient to know who got Bcc'ed.

Even for old email clients that used to include the Bcc header in the message based on the value of the Bcc field in their UI (as, say, an option to do so), many receiving mail hosts will strip out that header. It wasn't supposed to get transmitted so it gets stripped out if present. The whole point of the Bcc field is NOT to create a header with that list of recipients.

So let's get to the heart of the matter. Exchange processes it differently than what you are used to on your Linux mail server.

What can you do though if Insightly won't change their programming?

Here's a few ideas I can think of that might work:

1) Continue with the BCC idea but make 2 hops. What I mean by this is create resource mailboxes or similar in Exchange for the Insightly projects email addresses. Then BCC those addresses and have those mailboxes auto forward all email to the "real" Insightly project email address. At that point Insightly should see it as an actual TO address. Not sure how the FW: info would be handled by it, but worth a shot.

2) Consider simply CCing the Insightly address. I get why you want to do the BCC but maybe this is an option?

3) Same as #1 above, but put the email addresses on the Linux mail server. Then have that server trigger to BCC Insightly upon receiving a BCC from Exchange. You'd need to use a different mail domain on the Linux server and Outlook users would BCC email that domain (like [email protected]). Then Exchange would deliver mail destined for insightly.internal domain to the Linux server. The Linux server would then trigger a BCC to [email protected]. Frustrating and silly, but should work as well.

Hope that helps a little. It's a tricky situation to be in, and you can't exactly just nix the CRM software because of this I'm guessing.

Solution 2

A bcc should not add a To: field to the email headers. If it did the recipients of the message would be able to see who the message was sent to, the opposite of what bcc is intended to do. Instead a bcc adds a Bcc: line to the header which is tripped out by the final receiving mail server. A To: header is never stripped out and is passed to the recipient mailbox.

Typically you add a single normal To: of yourself or some public or no-reply address. This is the address the recipients will see. Then you add your Bcc's. The recipient does not see these.

Share:
5,933

Related videos on Youtube

Ian Bamforth
Author by

Ian Bamforth

Ninja cowgirl

Updated on September 18, 2022

Comments

  • Ian Bamforth
    Ian Bamforth over 1 year

    Is there a way to make an Exchange server set the To: header in the message sent to a bcc recipient? We have admin access to the server. Other email programs do this, so it should be possible.

    Example - if I send an email to [email protected], and bcc it to [email protected], user1 will see his own email address in the To: header. User2 will not see a To: header at all. I want user2 to see To: [email protected].

    For background, the reason I (think I) need this is that we use a CRM tool called Insightly. We copy client emails to project-specific Insightly email addresses, but Insightly cannot cope if we put the email address in the bcc field in Outlook. It copes if I send the same email from a linux-based mail account, and comparison of the headers highlighted the missing To field as the most likely problem.

    Obviously my preferred solution would be to get Insightly to fix their software and read something like the Received for header, but their customer service team are adamant that this bug is staying.

    Edit: A bit of further clarification - when I send email via my personal (linux webmail) email account, the person receiving the bcc sees their own address in the To header. When I send email via my work (Outlook) account, the person receiving the bcc sees no To header at all.

  • TomTom
    TomTom almost 10 years
    More exact: Bcc stands for BLIND carbon copy. If you want the recipient to know - it should be CC - not BCC.
  • Ian Bamforth
    Ian Bamforth almost 10 years
    JeffW - I've edited my question a bit, but what I'm getting at is that some email servers, when sending an email to a bcc recipient, put that bcc recipient's email address in the To field (presumably only in the copy the bcc recipient receives). Outlook does not, and Insightly in their infinite wisdom seem incapable of reading the other headers.
  • Ian Bamforth
    Ian Bamforth almost 10 years
    TomTom - apologies if my question was unclear, and thanks for the reply, but I don't want the bcc recipient to know who else the message was sent to, I just want them to see their own address in the To field. I know what bcc means!
  • Ian Bamforth
    Ian Bamforth almost 10 years
    Thanks, very useful information, although it sounds like the answer is basically "no"! 1) is not viable, as Insightly creates a new email address for everything you do, which would drive our admins crazy. 2) is what Insightly suggest, but I really want to avoid giving our customers these email addresses - plus I'm loathe to advertise for Insightly given their responses so far! 3) is probably the best option, but I think nixing Insightly altogether is not out of the question - it's only moderately used, partly because of this problem, and if they won't fix bugs then they pose a risk.