I have this code part that's responsible for getting the variables from the contact form - and and sending an email to me, and my friends from work.

add_action('wp_ajax_nopriv_submit_contact_form', 'submit_contact_form'); 
// Send information from the contact form
function submit_contact_form(){

    // If there is a $_POST['email']...
    if( isset($_POST['email']) && ($_POST['validation'] == true ) ) {

        $email = $_POST['email'];       
        $email_to = "aaaa@example.pro";
        $fullname = $_POST['fullname'];
        $headers = 'From: '. $fullname .' <'. $email .'>' . "\r\n";
        $group_emails = array(
        $email_subject = "example intro: $email";
        $message = $_POST['text']; 

        if(wp_mail($group_emails,$email_subject,$message,$headers)) {
            echo json_encode(array("result"=>"complete"));
        } else {
            echo json_encode(array("result"=>"mail_error"));

I want to add to the headers 4 emails as BCC.

How do I do this right? I tried a few variations of writing it without any success.

1 Answer 1


$headers can be a string or an array, but it may be easiest to use in the array form. To use it, push a string onto the array, starting with "From:", "Bcc:" or "Cc:" (note the use of the ":"), followed by a valid email address.


In other words:

$headers = array(
    'From: bbb@example.com', 
    'CC: ccc@example.com', 
    'CC: ddd@example.com', 
    'BCC: eee@example.pro', 
    'BCC: fff@example.pro' 

You can see where the Core parses the string by splitting it on that ":":

296  list( $name, $content ) = explode( ':', trim( $header ), 2 );
298                                 // Cleanup crew
299                                 $name    = trim( $name    );
300                                 $content = trim( $content );
302                                 switch ( strtolower( $name ) ) {
303                                         // Mainly for legacy -- process a From: header if it's there
304                                         case 'from':

Note: This is untested but I am fairly confident. I did not want to start sending email to addresses without warning (if those are even active addresses).

  • The only thing I changed for it to work is using $header and not $group_emails. TNX!
    – Kar19
    Jun 7, 2015 at 15:27
  • 1
    Can you post your final code? Help will be appreciated. Aug 8, 2019 at 10:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.