让swiftmailer在php中忽略坏邮件
我最多有5封通过Swift Mailer发送的电子邮件,但我不知道其中有多少封是无效的。 无效的电子邮件=“” 我想知道是否有一种方法可以让swift mail忽略无效的电子邮件,而不是给出致命错误而不发送任何内容。我在网上看了看,他们提到我应该尝试捕捉坏邮件,但我不太明白语法,也不太明白他们想说什么,反正这是我到目前为止的代码 //发送欢迎信 功能发送电子邮件($info){让swiftmailer在php中忽略坏邮件,php,swiftmailer,Php,Swiftmailer,我最多有5封通过Swift Mailer发送的电子邮件,但我不知道其中有多少封是无效的。 无效的电子邮件=“” 我想知道是否有一种方法可以让swift mail忽略无效的电子邮件,而不是给出致命错误而不发送任何内容。我在网上看了看,他们提到我应该尝试捕捉坏邮件,但我不太明白语法,也不太明白他们想说什么,反正这是我到目前为止的代码 //发送欢迎信 功能发送电子邮件($info){ 通过使用filter\u var检查电子邮件是否有效,预先剥离无效电子邮件怎么样 ... $emails = arr
通过使用
filter\u 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);
这不是答案,但您正在分配
$user2['Email']
到五个不同的变量。我的坏用户忘记更改用户上的数字它应该与电子邮件号码对应我对其工作原理感到困惑我尝试了简单的复制和粘贴,它停止向我发送错误消息,但没有发送电子邮件。@user2444298它使用过滤器\u var
功能检查不同的电子邮件,如果他们进行验证,则会将其添加到$emails
数组中。只有经过验证的电子邮件才会添加到$emails
数组中,因此,当使用$message->setTo($emails)
时(如果您的示例中语法正确;我不使用swiftmailer),这将意味着我们已经剥离(或者说,从未添加)对数组无效的电子邮件。如果要测试哪些电子邮件已验证,可以在所有的筛选之后使用print\r($emails)
,或者使用var\u dump($emails)
。
...
$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);