Sample code for 30+ languages & platforms
Android™

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 Android™ Downloads

Android™
// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;

import android.app.Activity;
import com.chilkatsoft.*;

import android.widget.TextView;
import android.os.Bundle;

public class SimpleActivity extends Activity {

  private static final String TAG = "Chilkat";

  // Called when the activity is first created.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // 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.
    CkEmail email = new CkEmail();

    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.put_Subject("test");
    email.put_Body("test");

    // Let's examine the MIME
    Log.i(TAG, email.getMime());
    Log.i(TAG, "----------------");

    // 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.get_NumBcc();
    Log.i(TAG, "Num BCC recipients = " + String.valueOf(numBcc));

    int i = 0;
    while (i < numBcc) {
        Log.i(TAG, String.valueOf(i));
        Log.i(TAG, email.getBcc(i));
        Log.i(TAG, email.getBccName(i));
        Log.i(TAG, email.getBccAddr(i));
        Log.i(TAG, "-----");
        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.

  }

  static {
      System.loadLibrary("chilkat");

      // Note: If the incorrect library name is passed to System.loadLibrary,
      // then you will see the following error message at application startup:
      //"The application <your-application-name> has stopped unexpectedly. Please try again."
  }
}