我有一个数组列表。数组中有一些无效的电子邮件。即:
$to = array('sattar.kuet@gmail.com','sas dsad .com');
此处sattar.kuet@gmail.com是有效邮件,但 sas dsad .com 不是有效的电子邮件。因此,如果我想与此收件人($ to)发送电子邮件,则 sas dsad .com 会发生致命错误。那么如何忽略这些无效的电子邮件?
N.B:我正在使用cakephp 2.6.7
答案 0 :(得分:2)
CakeEmail
会抛出SocketException
。抓住异常并忽略它。
选项1:发送多封电子邮件
$email = new CakeEmail();
$to = array('sattar.kuet@gmail.com','sas dsad .com');
foreach ($to as $emailAddress) {
try {
$email->to($emailAddress);
$email->send();
} catch(SocketException $e) {
//Do nothing
}
$email->reset();
}
选项2:发送一封电子邮件
$email = new CakeEmail();
$to = array('sattar.kuet@gmail.com','sas dsad .com');
foreach ($to as $emailAddress) {
try {
$email->addTo($emailAddress);
} catch(SocketException $e) {
//Do nothing
}
}
$email->send();
答案 1 :(得分:0)
您可以使用以下代码删除所有无效的电子邮件:
<?php
$len=count($array);
for ($i=0;$i<$len;$i++)
if (preg_match('^[a-z0-9!#$%&*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+(?:[a-z]{2,4}|museum|travel)$/i',$array[$i]))
echo $array[$i];
?>