admin管理员组

文章数量:1427058

How do I validate an array of emails from a textbox before sending them to the wp_mail() function?

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

$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);

The sample code above stops on the if (is_email()) condition. How can I validate each email in the array whichever way before sending to the mail function?

How do I validate an array of emails from a textbox before sending them to the wp_mail() function?

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

$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);

The sample code above stops on the if (is_email()) condition. How can I validate each email in the array whichever way before sending to the mail function?

Share Improve this question edited May 15, 2019 at 13:22 butlerblog 5,1313 gold badges28 silver badges44 bronze badges asked Jul 16, 2012 at 11:00 LoxzibitLoxzibit 1534 silver badges11 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 3

Are you aware you can pass a comma-separated string of email adresses to wp_mail?

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

Then just throw that string into wp_mail’s first argument. Depending on exactly what you want to do with the emails, this approach may be sufficient.

The wp_mail function internally relies on the PHPMailer library (unless you use a redefined wp_mail function). PHPMailer validates the email before adding it to the recipient list. Invalid emails will be skipped.

本文标签: phpValidate emails in array using foreach