PHPMailer - 跳过向无效地址发送电子邮件

我正在尝试通过 PHPMailer 发送电子邮件并且它工作得很好。只有一个问题,我不知道如何解决。由于域不存在,我可能需要尝试将电子邮件发送到无效地址。由于域不存在,这些电子邮件不会被发送也没关系。当我尝试时,我收到一条错误消息,并且 PHPMailer 停止并且也不会继续向其他(有效)地址发送电子邮件。有没有办法跳过那些无效的电子邮件并强制 PHPMailer 继续而不显示错误消息?

错误信息:

致命错误:未捕获 PHPMailer\PHPMailer\Exception:SMTP 错误:以下收件人失败:erika@dummyverein.de:域不存在:“dummyverein.de”在...

服务器 -> 客户端:521 5.1.2 域不存在:'dummyverein.de'

SMTP 错误:RCPT TO 命令失败:521 5.1.2 域不存在:'dummyverein.de'

代码:

$mail = new PHPMailer(true);

$mail->CharSet = 'utf-8';  

$mail->isSMTP();

$mail->isHTML(true);

$mail->Host = 'smtp.strato.de';

$mail->Port = 587;

$mail->SMTPAuth = true;

$mail->Username = 'xxxx';

$mail->Password = 'xxxx';

$mail->SMTPSecure = 'tls';

$mail->SMTPDebug = 2;            // set to 2 to get error messages for now 

$mail->MailerDebug = false;

$mail->setFrom($absender, $name);

$mail->addAddress($to);

$mail->Subject = $subject;

         

$mail->Body = $message_other_player;


$mail->send();


慕桂英4014372
浏览 166回答 2
2回答

蝴蝶刀刀

为解决这个问题使用try ... catch$mail=new PHPMailer(true);try {$mail->CharSet = 'utf-8';  $mail->isSMTP();$mail->isHTML(true);$mail->Host = 'smtp.strato.de';$mail->Port = 587;$mail->SMTPAuth = false;$mail->Username = 'xxxx';$mail->Password = 'xxxx';$mail->SMTPSecure = 'tls';$mail->SMTPDebug = 0;$mail->MailerDebug = false;$mail->setFrom($absender, $name);$mail->addAddress($to);$mail->Subject = $subject;$mail->Body = $message_other_player;}$mail->send();      // echo 'Message has been sent';   } catch (Exception $e) {     //  echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";   }

qq_遁去的一_1

警告:下面的代码有点工作,但它不是真正的解决方案,它只是移动了问题,因为 SMTP 被忽略了:看起来这个简单的改变实际上解决了它。我认为它只会解决问题,但它现在似乎有效。// $mail->isSMTP();只需评论或删除“isSMTP()”
打开App,查看更多内容
随时随地看视频慕课网APP