web-dev-qa-db-ja.com

Wp_mailを使用し、ヘッダーに複数のBCCを使用してEメールを送信する方法

私はこのコード部分を持っていて、連絡フォームから変数を取得し、そして私と私の友人に仕事から電子メールを送ります。

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通のEメールをBCCとして追加したい。

これを正しく行うにはどうすればよいですか。私は、成功せずにそれを書くことのいくつかの変形を試みました。

6
Kar19

$ headersは文字列でも配列でもかまいませんが、配列形式で使用するのが最も簡単な場合があります。それを使用するには、 "From:"、 "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]' 
);

":" :に分割すると、Coreが文字列を解析する場所を確認できます。

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

注:これはテストされていませんが、私はかなり自信があります。私は警告なしにアドレスにEメールを送信し始めたくはありませんでした(それらがアクティブなアドレスであっても)。

6
s_ha_dum