Sample code for 30+ languages & platforms
Chilkat2-Python

Email BCC Recipients

See more Email Object Examples

Explains the meaning of BCC recipients, how it is different than CC recipients, and how Chilkat handles BCC.

Chilkat Chilkat2-Python Downloads

Chilkat2-Python
import chilkat2

# In the context of email communication, the BCC (Blind Carbon Copy) field is used to send a copy of an email
# to recipients without revealing their addresses to other recipients. When it comes to the MIME
# header of an email, the BCC email addresses should not be included.
# 
# The MIME header is a part of an email message that contains metadata and other information about the email,
# such as the sender, recipient(s), subject, and other details. However, the BCC field is meant to be a confidential field,
# and its purpose is to hide the recipients� email addresses from each other.
# 
# Including BCC email addresses in the MIME header would defeat the purpose of using BCC since it would expose
# the hidden recipients� addresses to the other recipients. This violates the intended privacy and confidentiality of the BCC feature.
# 
# To maintain the confidentiality of BCC recipients, the BCC field should only be used in the envelope of
# the email during the SMTP (Simple Mail Transfer Protocol) transaction. The SMTP server handles the actual
# delivery of the email to the respective recipients while keeping the BCC information hidden from other recipients.
# 
# It is important to ensure that BCC email addresses are not included in the MIME header of an email to
# preserve the privacy and confidentiality of the recipients.

# -----------------------------------------------------------------------------------------
# To discuss how Chilkat handles BCC, let's first create an email with some BCC recipients.
email = chilkat2.Email()

email.AddTo("Joe","joe@example.com")
email.AddTo("Mary","mary@example.com")
email.AddCC("Steve","steve@example.com")
email.AddBcc("Jerry","jerry@example.com")
email.AddBcc("Tom","tom@example.com")

email.Subject = "test"
email.Body = "test"

# Let's examine the MIME
print(email.GetMime())
print("----------------")

# We have the following.
# Notice the BCC addresses are not present.  They are not included in the MIME header.

# MIME-Version: 1.0
# Date: Mon, 10 Jul 2023 13:57:22 -0500
# Message-ID: <34606FFCB4A440B20E549A223F2F7BF0EB10EE2C@SLICE>
# Content-Type: text/plain; charset=us-ascii; format=flowed
# Content-Transfer-Encoding: 7bit
# X-Priority: 3 (Normal)
# To: Joe <joe@example.com>, Mary <mary@example.com>
# Cc: Steve <steve@example.com>
# Subject: test
# 
# test

# However the BCC address are still stored in the Chilkat email object.
# For example, you can examine the BCC recipients in the email object like this:
numBcc = email.NumBcc
print("Num BCC recipients = " + str(numBcc))

i = 0
while i < numBcc :
    print(str(i))
    print(email.GetBcc(i))
    print(email.GetBccName(i))
    print(email.GetBccAddr(i))
    print("-----")
    i = i + 1

# Output:

# Num BCC recipients = 2
# 0
# Jerry <jerry@example.com>
# Jerry
# jerry@example.com
# -----
# 1
# Tom <tom@example.com>
# Tom
# tom@example.com
# -----

# Thus, when the email is sent, it will also be sent to the BCC recipients,
# but the email received by each of the recipients (i.e. the raw MIME of the email) 
# should not and will not include the BCC email addresses.  There should be no way
# for the recipients to know that the email was sent to the BCC addresses -- because if 
# there is a way to know, then it is not truly BCC.