Sample code for 30+ languages & platforms
Objective-C

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 Objective-C Downloads

Objective-C
#import <CkoEmail.h>

//  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.
CkoEmail *email = [[CkoEmail alloc] init];

[email AddTo: @"Joe" emailAddress: @"joe@example.com"];
[email AddTo: @"Mary" emailAddress: @"mary@example.com"];
[email AddCC: @"Steve" emailAddress: @"steve@example.com"];
[email AddBcc: @"Jerry" emailAddress: @"jerry@example.com"];
[email AddBcc: @"Tom" emailAddress: @"tom@example.com"];

email.Subject = @"test";
email.Body = @"test";

//  Let's examine the MIME
NSLog(@"%@",[email GetMime]);
NSLog(@"%@",@"----------------");

//  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:
int numBcc = [email.NumBcc intValue];
NSLog(@"%@%d",@"Num BCC recipients = ",numBcc);

int i = 0;
while (i < numBcc) {
    NSLog(@"%d",i);
    NSLog(@"%@",[email GetBcc: [NSNumber numberWithInt: i]]);
    NSLog(@"%@",[email GetBccName: [NSNumber numberWithInt: i]]);
    NSLog(@"%@",[email GetBccAddr: [NSNumber numberWithInt: i]]);
    NSLog(@"%@",@"-----");
    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.