Проверка сообщений электронной почты в массиве с помощью foreach


Как проверить массив электронных писем из текстового поля перед отправкой их в функцию wp_mail()?

$emails = '[email protected];[email protected]
[email protected],[email protected], email5.com';

$emails = preg_split('/[;,\n]/', $emails);
$validEmails = array();
$subject = 'Hey Subject';
$message = 'I am a message';

foreach($emails as $key=>$value){
  if (is_email($value)) {
    array_push($validEmails, $value);
  }
}

wp_mail($validEmails, $subject, $message, $headers);

Приведенный выше пример кода останавливается на условии if (is_email()). Как я могу проверить каждое электронное письмо в массиве любым способом перед отправкой в почтовую функцию?

Author: butlerblog, 2012-07-16

1 answers

Знаете ли вы, что вы можете передать строку адресов электронной почты, разделенных запятыми, в wp_mail?

// Make sure your email strings only uses comma as a separator
$emails = preg_replace('~[,;\s]+~', ',', $emails);

Затем просто добавьте эту строку в первый аргумент wp_mail. В зависимости от того, что именно вы хотите сделать с электронными письмами, этого подхода может быть достаточно.

Функция wp_mail внутренне зависит от библиотеки PHPMailer (если вы не используете переопределенную функцию wp_mail). PHPMailer проверяет электронное письмо перед добавлением его в список получателей. Недействительные электронные письма будут пропущены.

 3
Author: Geert, 2012-07-16 11:41:14