web-dev-qa-db-fra.com

Comment envoyer un email en utilisant wp_mail et en utilisant plus d'un BCC dans l'en-tête

J'ai cette partie du code chargée de récupérer les variables du formulaire de contact - et de m'envoyer un courrier électronique ainsi qu'à mes amis du travail.

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 = "[email protected]";
        $fullname = $_POST['fullname'];
        $headers = 'From: '. $fullname .' <'. $email .'>' . "\r\n";
        $group_emails = array(
            '[email protected]', 
            '[email protected]', 
            '[email protected]', 
            '[email protected]', 
            '[email protected]' 
            );
        $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"));
            var_dump($GLOBALS['phpmailer']->ErrorInfo);
    }
        wp_die();
    }
}

Je veux ajouter aux en-têtes 4 courriers électroniques en tant que CCC.

Comment puis-je le faire correctement? J'ai essayé quelques variantes de l'écriture sans aucun succès.

6
Kar19

$ headers peut être une chaîne ou un tableau, mais il peut être plus facile à utiliser sous la forme tableau. Pour l'utiliser, insérez une chaîne dans le tableau, en commençant par "De:", "Bcc:" ou "Cc:" (notez l'utilisation de ":"), suivie d'une adresse électronique valide.

https://codex.wordpress.org/Function_Reference/wp_mail#Using_.24headers_To_Set_.22From:.22.2C_.22Cc:.22_and_.22Bcc:.22_Parameters

En d'autres termes:

$headers = array(
    'From: [email protected]', 
    'CC: [email protected]', 
    'CC: [email protected]', 
    'BCC: [email protected]', 
    'BCC: [email protected]' 
);

Vous pouvez voir où le Core analyse la chaîne en la divisant sur ce ":" :

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

Note: Ceci n’a pas été testé mais je suis assez confiant. Je ne voulais pas commencer à envoyer des courriels à des adresses sans avertissement (même si ce sont des adresses actives).

6
s_ha_dum