wp_mail: An array as $to – multiple emails or single email with all the email ids in it?

If I will use an array of email IDs for $to parameter of wp_mail function, will it send different emails to all those email ids or will send one email with all the email ids as ‘to’?

Related posts

1 comment

  1. Yes, you can use an array of recipients:

     * @param string|array $to Array or comma-separated list of email addresses to send message.
     * @param string $subject Email subject
     * @param string $message Message contents
     * @param string|array $headers Optional. Additional headers.
     * @param string|array $attachments Optional. Files to attach.
     * @return bool Whether the email contents were sent successfully.
     */
    function wp_mail( $to, $subject, $message, $headers = '', $attachments = array() ) {
    
    // …
    
    
        // Set destination addresses
        if ( !is_array( $to ) )
            $to = explode( ',', $to );
    
        foreach ( (array) $to as $recipient ) {
            try {
                // Break $recipient into name and address parts if in the format "Foo <bar@baz.com>"
                $recipient_name = '';
                if( preg_match( '/(.*)<(.+)>/', $recipient, $matches ) ) {
                    if ( count( $matches ) == 3 ) {
                        $recipient_name = $matches[1];
                        $recipient = $matches[2];
                    }
                }
                $phpmailer->AddAddress( $recipient, $recipient_name);
            } catch ( phpmailerException $e ) {
                continue;
            }
        }
    

    To send different emails, you have to call wp_mail() multiple times.

Comments are closed.