Как отправить электронное письмо с помощью wp mail и использовать более одного BCC в заголовке


У меня есть эта часть кода, которая отвечает за получение переменных из контактной формы - и отправку электронного письма мне и моим друзьям с работы.

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();
    }
}

Я хочу добавить в заголовки 4 электронных письма как BCC.

Как мне сделать это правильно? Я попробовал несколько вариантов его написания, но безуспешно.

 6
Author: Kar19, 2015-06-02

1 answers

$заголовки могут быть строкой или массивом, но их проще всего использовать в форме массива. Чтобы использовать его, вставьте строку в массив, начиная с "От:", "Bcc:" или "Cc:" (обратите внимание на использование ":"), за которым следует действительный адрес электронной почты.

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

Другими словами:

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

Ты можешь посмотрите, где ядро анализирует строку, разделяя ее на ":":

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':

Примечание: Это непроверено, но я достаточно уверен. Я не хотел начинать отправлять электронную почту на адреса без предупреждения (если это вообще активные адреса).

 6
Author: s_ha_dum, 2015-06-08 08:08:55