I'm using WP 3.3.1

I am trying to add BCC onto the headers of an email I'm sending out, but the BCC is not being added.

public $from = "[email protected]";
public $replyTo = "[email protected]";
public $bcc = "[email protected]";

$headers['From']    = "From: ".$this->from;       
$headers['Reply-To'] = "Reply-To: ".$this->replyTo;
$headers['Bcc'] = "Bcc: ".$this->bcc;

wp_mail("[email protected]", "My Subject Line" , $html, $headers);

I've looked at this article, which says the problem was suppose to be fixed in WP 3.2...but for me, it's still not working.

I am using a local SMTP server application called Papercut to monitor the emails that are being sent.

Related: wp_mail not recognizing cc and bcc headers

  • @EAMann I didn't create that question that I referenced, which is why I opened a new one.
    – J Lee
    Commented Mar 20, 2012 at 22:11
  • a different guy opened that one mate.. check the name.. ahh never mind @fewpeople - you should do it like this in your wp_mail line: wp_mail(array($replyTo, $bcc), "My Subject Line" , $html, $headers); - You can even add more if you want... hope this helps :)
    – Sagive
    Commented Mar 20, 2012 at 22:17
  • @fewpeople My mistake ... reopening.
    – EAMann
    Commented Mar 20, 2012 at 22:42
  • @SagiveSEO Can someone confirm this?
    – AlxVallejo
    Commented Jul 23, 2012 at 16:22

1 Answer 1


You could try to debug the output like this:

function test_phpmailer_init( $phpmailer )
    echo '<pre>';
        var_dump( $phpmailer );
    echo '</pre>';
    return $phpmailer;
add_action( 'phpmailer_init', 'test_phpmailer_init' );

The code in your question is correct, the problem is with your local SMTP application. If you are using a local SMTP server (e.x. Papercut), it only displays the headers that a receiver would see. Since BCC addresses are hidden, you will not see them. So to check to see if BCC addresses are being attached, you can use the function I've listed above which will spit out the mail output.

  • Here's what I got for the bcc section private 'bcc' => array 0 => array 0 => string '[email protected]' (length=19) 1 => string 'Frank' (length=5)'
    – J Lee
    Commented Mar 21, 2012 at 9:54
  • Ok, this tells us that it's empty. But please keep this filter alive to monitor your changes... Ehm, and thanks for editing the comment. Much more readable :) Now the question is: How exactly does your current setup look like? (Update Q).
    – kaiser
    Commented Mar 21, 2012 at 9:57
  • 1
    What information in particular of the setup would you like to look at, I can provide as much info as needed.
    – J Lee
    Commented Mar 21, 2012 at 10:02
  • Ah, no more info needed, I guess you'll get around this yourself. Please go into core, /wp-includes/pluggable.php ~Line#235 (WP 3.3.1) and starting with some var_dump() of $header. If it's empty, then go up and try to find the point, where your BCC is lost.
    – kaiser
    Commented Mar 21, 2012 at 10:15
  • 1
    Your question in regards to looking at the setup led me to find out what the problem was. I'm using a program called Papercut, which is a simplified SMTP server for receiving messages. Papercut doesn't show BCC addresses as it keeps it hidden. So the only way to test BCC is using your debug function and making sure that the BCC section of the var_dump($phpmailer) has the addresses you want to send to. Alas, I feel stupid as this isn't a WP problem, but the case is solved.
    – J Lee
    Commented Mar 21, 2012 at 11:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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