Automatically BCC All Messages

Last reviewed on June 18, 2013   —  59 comments

Outlook doesn't have a built in method you can use to automatically include yourself (or other email address) in the BCC field when you send a new message. You can use Rules Wizard to CC and address but not to send a BCC.

To BCC the message, you need to either use VBA or a utility listed below.

Always BCC Code Sample

Basic VBA instructions are below, instructions with screenshots are at How to use Outlook’s VBA Editor .

Private Sub Application_ItemSend(ByVal Item As Object, _
                                 Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next

    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address 
    ' or resolvable to a name in the address book
    strBcc = ""

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
        strMsg = "Could not resolve the Bcc recipient. " & _
                 "Do you want to send the message?"
        res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                "Could Not Resolve Bcc")
        If res = vbNo Then
            Cancel = True
        End If
    End If

    Set objRecip = Nothing
End Sub

BCC some but not all messages

If you need to BCC, some but not all, messages, you’ll need to use an IF statement to filter the messages. While you can filter on To, subject, or category fields, if you need to use series of If statements, filtering by category may be the easiest.

This code block BCCs one address if the category is Personal, another if the category is Important and exits if there is no category. It could easily be switched around to exit if there is a category and BCC everything else.

To add a category to email, click on the Expander expander in the Tags group and choose the Category from the options dialog. You could also use a macro to add a specific category to the ribbon for easy access. Get the code from Adding Categories when Composing Email.

    If Item.Categories = "Personal" Then
    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address
    ' or resolvable to a name in the address book
      strBcc = ""
     ElseIf Item.Categories = "Important" Then
      strBcc = ""

      Exit Sub
    End If
    Set objRecip = Item.Recipients.Add(strBcc)

How to use VBA

You will need macro security set to low during testing. To check your macro security in Outlook 2010 or 2013, go to File, Options, Trust Center and open Trust Center Settings, Macro Settings. In Outlook 2007 and older, it’s at Tools, Macro Security.

After you test the macro and see that it works, you can either leave macro security set to low or sign the macro.

  1. Open the VBA Editor using Alt+F11.
  2. Expand Project1 and double click on ThisOutlookSession.
  3. Copy then paste the macro into ThisOutlookSession. (Click within the code, Select All using Ctrl+A, Ctrl+C to copy, Ctrl+V to paste.)

Don't forget to replace with the correct address.


Always Bcc

Sperry Software's Always BCC add-in for Outlook is being released for Outlook 2010. The add-in automatically adds a CC/BCC email address to all outgoing emails - making it perfect for compliance reasons. It can also include a cc or a bcc based on conditions you set up, for instance if you are sending from a particular account. The add-in now works with Outlook 2010, both 32-bit and 64-bit.

Auto BCC/CC for Microsoft Outlook

This add-in automatically creates a BCC (blind carbon copy) or CC (carbon copy) for all or some of your messages based on simple rules that you set. It can send a BCC/CC for all outgoing email messages to specified addresses or with certain words in the subject or attachment name, e-mails sent from all or some of your accounts. You can create very flexible rules for every occasion, introduce exceptions and use several keywords in one field. The plug-in works in Microsoft Outlook 2010 - 2000.

AutoBCC for Outlook

Free Add-in to automatically send a blind-copy of all your outgoing messages to another address.

AutoFill BCC

Create rules for filling TO, CC, BCC and SUBJECT fields of new message based on the folder where the original message is stored. Add-in allows to use different settings for different folders. The fields you don't want to change will remain the same. It only allows automatic address management, while message body remains intact. Works with Microsoft Outlook 2000 and up, fully compatible with Microsoft Exchange Server public and shared folders.

Compliance Copies Add-In

Sperry Software's Compliance Copies add-in for Microsoft Outlook will automatically add multiple BCC or CC recipients based on multiple different rules for different people. Unlike the Always BCC add-in, this new add-in also supports exceptions to the CC/BCCs conditions. This tool works with Outlook 2007/2010/2013.


HiddenBCC is an add-in for Microsoft Outlook 2000/2002(XP)/2003 which enables you to automatically add a predefined BCC recipient to every outgoing message. Freeware version available.

Silent BCC for Outlook

If you want to monitor every email that leaves your company, Silent BCC for Outlook is the right tool. Once installed, the plug-in will deliver you BCC copies of all messages sent from all accounts of a PC. Users won't know that a BCC copy was sent from their machines, since the add-in is invisible in Outlook and BCC addresses are removed from Sent Items. Users can't turn the plug-in off or alter your settings. You can tweak the add-in to be copied on each outgoing email or allow exceptions.

SilentMail for Outlook

SilentMail for Outlook monitors outgoing emails and sends a blind carbon copy (BCC) of every email to a specified address. SilentMail for Outlook does this by copying the message from the Outbox mail folder, making the monitoring process invisible for the user. Supports all versions of Outlook. Does not require Exchange server.


TuneReplyAll is a free utility that adds a number of useful features to Microsoft Outlook 2010: It can show a warning message when a user is going to reply to everyone. The user has to confirm his choice to reply to all. This will help to prevent sending out confidential information. If Outlook includes the user's own address in Replay all, TuneReplyAll can remove it from the message. Alternately, if the user wants to include his address in the To, CC, or BCC address field in new, replied or forwarded messages, TuneReplyAll will add it.

Automatically BCC using Smartphones

While not “an Outlook problem”, automatically BCCing when sending mail from a smart phone is a popular feature. Because the mail goes directly to the SMTP server, Outlook’s ability (or lack of it) is not a factor; it’s all about what the smart phone software supports.

Blackberry users can configure their account to auto bcc another address. To do this, BIS users will log into their web interface at and double click on the email account. The Auto BCC field is not present when the account is created, but added after creation.

IPhone and iPad users can set the device to always BCC your address in Options > Mail, Calendar, and Contacts.

Automatically BCC using Exchange Transport rules

Administrators of Exchange server 2007 and 2010 can configure a transport rule to BCC messages to another address, bypassing the need for VBA or other solutions (and without the user’s knowledge).

Transport rules can be created and configured using a cmdlet or from the Exchange System Manager console.

Written by

Diane Poremsky
A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Please post long or more complicated questions at Outlookforums.

59 responses to “Automatically BCC All Messages”

  1. Normal User

    Most of your answers on different forums try to prove to people requesting help with automatic BCC that they either don't need that, or they are enough professional to write VBA code.

    Try to listen to the people. This feature is needed in Outlook, and your VBA code don't always work. For example if you use BlacBerry device associated to the mail account.

  2. Michael

    I would like to automatically BCC incoming or generated (meeting, appointments) requests and cancellations to my gmail account from within outlook 2010. but I only want to have the subject, time and location - not the body or other recipients of the request.

    Is this possible?


  3. Michael

    How about simply BCC only the incoming or generated meetings and appointments, not regular emails?

  4. Gregory J Schimoler

    I cannot believe there have been no posts since Mar2012. I have a PhD in CompSci - your VBA code is nonsense.

    Does MS filter these posts - to eliminate anything too critical of MS?

    MS has been promising a 3rd party freeware plugin link for years - where is it? Which of the list you show are free? I have been a loyal business Microsoftt customer since the first PC (I did in fact order the first IBM PC for PepsiCo in the early 80's!) Used 07 and Bberry for many years.

    So what are you telling me? I should use gmai as my primary and bcc outlook?

    A reply throught the message board and direct to my private email would be most appreciated.

    Greg Schimoler (see my LinkedIn)
    President & CEO
    GJS Consulting

  5. SysAdm

    Thanks for all of the advice here, Diane and others... I do agree that this "should be" as simple as a rule, and I don't know why it isn't.

    * BTW, you show "CTRL + P" for the pasting option... I'm sure it was a typo, and you know it's "CTRL + V", but I thought you may want to update it anyway.

    Thanks again

  6. Greg

    How can I go about making it so I can bcc email to two people at the same time?

    I tried: strBcc = ";" and your warning dialog came up, so I removed the if portion of the code and tried it and the email sent out but I got a return back saying: Your message did not reach some or all of the intended recipients. The following recipient(s) cannot be reached: and it is blank after that.

    Ideas? Thanks for the free vb script!

  7. Greg

    Actually after some playing around I figured it out. Here it is for anyone else who might ask the same thing! :)

    Private Sub Application_ItemSend(ByVal Item As Object, _
    Cancel As Boolean)
    Dim objRecip As Recipient
    Dim strMsg As String
    Dim strCcc As String
    Dim res As Integer
    Dim strDcc As String
    On Error Resume Next

    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address
    ' or resolvable to a name in the address book
    strDcc = "Employee ONE"
    strCcc = "Employee TWO"
    Set objRecip = Item.Recipients.Add(strDcc)
    objRecip.Type = olBCC
    Set objRecip = Item.Recipients.Add(strCcc)
    objRecip.Type = olBCC
    Set objRecip = Nothing
    End Sub

    Thanks man!

  8. Greg

    Yea. Idk why not. I suck at vbscript. I guess you need a foreach statement to parse the ;'s. I was using Outlook 2007 btw.

  9. Steve G

    I am a newbie here - so pls forgive my ignorance. Why is this not already a feature of Outlook?

  10. Alex

    Is there a way to modify the code to BCC someone on e-mails sent to a specified person?

  11. Alex

    I am not sure if my syntax is correct. I have very little experience with programming, and this was with C++ years ago. This is what I have, but it doesn't seem to be working. Any adivce?

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim objRecip As Recipient
    Dim strMsg As String
    Dim res As Integer
    Dim strBcc As String
    On Error Resume Next

    ' #### USER OPTIONS ####
    ' address for Bcc -- must be SMTP address or resolvable
    ' to a name in the address book

    If Item.To = "" Then
    strBcc = ""
    End If

    Set objRecip = Item.Recipients.Add(strBcc)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
    strMsg = "Could not resolve the Bcc recipient. " & _
    "Do you want still to send the message?"
    res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
    "Could Not Resolve Bcc Recipient")
    If res = vbNo Then
    Cancel = True
    End If
    End If

    Set objRecip = Nothing
    End Sub

    Thank you.

  12. David Jordan

    Is there a way to exclude an entire domain from being BCC'd? I would like to be able to exclude our companies domain so that internal emails will not be BCC'd. We have 3 domains we would like to exclude.



  13. David Jordan

    Thanks for your reply! We are using exchange online. How would you go about doing that?

  14. David Jordan

    Is there vb code to not bcc if sent to a domain, or possibly a certain email address?

  15. Becky

    I used the code referenced above and it worked great...until I closed out Microsoft Outlook. It asked if I wanted to save the project...I said yes. The code is still in place when I go back into it, but it no longer BCCs the e-mail I put in place...any thoughts?

  16. Bill Craven

    Help! I copied and pasted the automatic BCC code and did a SAVE. When I try to RUN a popup asks for Macro Name? Do I need to do anything other than save the macro and change the security?

  17. Bill Craven

    DUH! I closed Outlook, waited a minute, and opened Outlook again. Auto BCC works great! Thanks

  18. R Clark

    Hello. I followed your instructions to bcc all my Outlook emails to my gmail account and it has worked a dream. THANK YOU!!! Very simple instructions which worked perfectly. I am very grateful.

  19. karl

    I have the same problem even though i have change the macro security to low (enable all macros). I am using Outlook 2010 with Win7
    Any advise?

  20. Alane McKinnon

    Go into the Trust Center, Macro Settings. I believe the default is to Disable all macros without notification. Change it to Notifications for all macros. Then at least every time you open Outlook, you will have the option to enable macros. You could Enable all macros, but of course, that is not recommended. If you do not have this setting checked, then apparently as soon as you re-boot your computer and start up Outlook, the macro won't work anymore. This will solve that problem.

  21. bpiereder

    using 2007

    is there a way to only BCC an address when the specified four of the five available accounts (not the 'from' field but the Account drop down below the send button) is used?

  22. bpiereder

    I added the Dims you've got at the end of the Dim list at the top and added:

    strAccount = "Billing"
    strAccount = "Customer Service"
    strAccount = "Tech Support"
    For Each oAccount In Application.Session.Accounts
    If oAccount.DisplayName = strAccount Then

    This is what I've got right before the End Sub (in separate lines but comment box will only expand so far):

    Else End If Next End If End If Set objRecip = Nothing

  23. Jodi

    I had to find a different path to automatically BCC myself. I tried the VBC code but couldn’t get it working again after the first day.

    The solution I came up with was creating a rule in Outlook that applied to all email I sent, it would ‘move a copy to a specific folder’, and I created no exceptions. I named it BCC so I’d remember what the rule does.

  24. sami

    Hello dear,
    this is for one account. how can i use multiple account as BCC recipient ??

  25. ts

    Hi Diane, thanks for above scripts. I used the first version which worked for one recipient perfectly. When I added strBcc = ";;" outllok screamed "Could not resolve the Bcc recipeint. Do you want to send the message?" and throwed the email into To: field. Email was sent but not delivered and I received a email message thet my email couldn't reach the entered recipietns. Am I doing something wrong (I am not a programmer)? Thanks!

  26. ts

    I resolved to send email to two recipients - now every email sent from outlook is sent also to BCC emails. But is it possible to deactivate this autoBCC sending for specific email? For example I want o send an private email to my wife and I don't want to BCC it? Is it possible to cancel the autoBCC by entering something to the BCC field or somewhere else (except deleting the script)? Thanks!

  27. ts

    Hi Diane, I resolved this and it works...

  28. tryke

    hi diane,

    any idea on what to do if I want to know if I already reply on the email or not.

    the setup is like this.

    I have a Samsung tabet 10.1 and a laptop on the office, I used the tablet when im out side the office but the problem is sometimes I cant remember if I already reply on the email or not when I used my laptop so what happened is I always ending up reply twice to one email. one from my tab and one from my laptop.

  29. John

    I'm trying to integrate our outgoing e-mail into Trello by having Outlook copy the outgoing mail to a specific board in out organization (achieved by having a rule for copying the mail to a job specific board based on a job identifier text string in the subject or e-mail body). If what I'm reading above is correct, the only way I could get this as a BCC and a standard CC (which is covered in the rules) would be to purchase Compliance Copies Add-In. Does that seem correct to you guys?

  30. Christopher

    Hi Diane:

    I have several email groups/distribution groups that I never want to have in the "To..." field when someone sends out an email. Is it possible to automatically move those to the "Bcc..." field (removing from the "To..." field) when clicking on send prior to actual delivery? So, if I send an email to CompanyEveryone that when it does send out the "To..." field is blank and the group CompanyEveryone defaults into the "Bcc..." field?

    The goal is that when the email is received and aperson attempts to click on the "Reply" or "Reply to All" that those groups are not in the "To..." or the "Cc..." field. I don't want people to reply email to the specific email groups.

  31. Chris

    Hi Diane,

    I think I posted my original comment in the wrong place, sorry for the duplication if so!
    I copied and pasted the code to automatically BCC all emails sent through Outlook into VBA and works great! However I would like to put in the following conditions:

    1. BCC all emails except for emails to
    2. BCC all emails except for emails to anyone at

    Is this possible? If so, could you please tell me where I go to do this and what the code would be?

    Thanks so much in advance!

  32. Shrikrushna

    thank you so much

  33. Bill Inra

    Wow - I'm impressed that you continue to offer responses to this code. And I appreciate the original code and the updates.

    I'm wondering if I'm the only one experiencing this - otherwise I'm surprised it's not already mentioned.

    This VBA code only seems to work in my case on new emails. On replies, the bcc doesn't happen. Is that expected? If so, is there a way to make the bcc happen on all outgoing messages (not just new messages?).

    Thank you.


Leave a Reply

If the Post Coment button disappears, press your Tab key.