我最多有5封电子邮件要通过Swift Mailer发送,但我从来不知道其中有多少将是无效的。无效邮件=" "
我想知道是否有一种方法可以让快速邮件忽略无效的电子邮件,而不是给出致命的错误,不发送任何东西。我上网看了看,我看到他们提到我应该尝试捕获之前的不良邮件,但我不太理解语法或他们想说什么,无论如何,这是我到目前为止的代码
//发送欢迎信函数send_email ($ info) {
//format each email
$body = format_email($info,'html');
$body_plain_txt = format_email($info,'txt');
//setup the mailer
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance();
$message ->setSubject('Your Party Information');
$message ->setFrom(array('noreply@stackoverflow.net' => 'noreply@stackoverflow.net'));
$message ->setTo(array($info['Email1'],$info['Email2'],$info['Email3'],$info['Email4'],$info['Email5'] => $info['$firstname']));
$message ->setBody($body_plain_txt);
$message ->addPart($body, 'text/html');
$result = $mailer->send($message);
return $result;
}
$emails1 = $user2['Email'] or " ";
$emails2 = $user2['Email'] or " ";
$emails3 = $user2['Email'] or " ";
$emails4 = $user2['Email'] or " ";
$emails5 = $user2['Email'] or " ";
通过与filter_var
检查电子邮件是否有效,如何事先简单地剥离无效邮件?
...
$emails = array();
if (filter_var($info['Email1'], FILTER_VALIDATE_EMAIL))
$emails[] = $info['Email1'];
if (filter_var($info['Email2'], FILTER_VALIDATE_EMAIL))
$emails[] = $info['Email2'];
if (filter_var($info['Email3'], FILTER_VALIDATE_EMAIL))
$emails[] = $info['Email3'];
if (filter_var($info['Email4'], FILTER_VALIDATE_EMAIL))
$emails[] = $info['Email4'];
if (filter_var($info['Email5'], FILTER_VALIDATE_EMAIL))
$emails[$info['Email5']] = $info['$firstname'];
...
$message ->setTo($emails);