I am using PHPMailer to build an email message. I am using PHPMailer only for MIME message formatting, not sending.
I then extract the raw message from the PHPMailer object before passing it on to the Gmail API for processing.
//Create a new PHPMailer instance
$mail = new PHPMailer;
//Tell PHPMailer to use SMTP
$mail->isSMTP();
$mail->IsHTML(true);
//Disable SMTP debugging
// 0 = off (for production use)
$mail->SMTPDebug = 0;
//Set who the message is to be sent from
$mail->setFrom("[email protected]", "From Name");
//Set an alternative reply-to address
$mail->addReplyTo("[email protected]", "Reply Name");
//Set to address
$mail->addAddress("[email protected]", "Some Name");
//Set CC address
$mail->addCC("[email protected]", "Some CC Name");
//Set BCC address
$mail->addBCC("[email protected]", "Some BCC Name");
//Set the subject line
$mail->Subject = "Test message";
//Set the body
$mail->Body = file_get_contents("/messagestore/some.html");
//Attach a file
$mail->addAttachment("/messagestore/some.pdf","some.pdf","base64","application/pdf");
//generate mime message
$mail->preSend();
//get the mime text
$mime = $mail->getSentMIMEMessage();
//do the google API dance
$newMailMessage = new Google_Service_Gmail_Message();
$data = base64_encode($mime);
$data = str_replace(array('+','/','='),array('-','_',''),$data); // url safe
$newMailMessage->setRaw($data);
$gmailService = new Google_Service_Gmail($google_client);
$gmailService->users_messages->send('me', $newMailMessage);
According to PHPMailer docs, CC and BCC only function for sending in the Win32 environment.
However, my MIME formatted messages transmit successfully via the Gmail API to the "TO" and "CC" addresses, but not the "BCC" address.
To summarize, When I send email using this code and I provide a 'BCC' address to the Gmail API, I do not see 'undisclosed-recipients' in the sent message header, and the message is not transmitted to the BCC address.
When I send email using the gmail web interface and I provide a 'BCC' address there, I do see 'undisclosed-recipients' in the sent message header, and the message is transmitted to the BCC address.
Does anyone know of a workaround for this issue?