为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕桂英4014372 2023-03-26 14:45:27
我正在尝试通过 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();
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

为解决这个问题使用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}";

   }


查看完整回答
反对 回复 2023-03-26
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

警告:下面的代码有点工作,但它不是真正的解决方案,它只是移动了问题,因为 SMTP 被忽略了:

看起来这个简单的改变实际上解决了它。我认为它只会解决问题,但它现在似乎有效。

// $mail->isSMTP();

只需评论或删除“isSMTP()”


查看完整回答
反对 回复 2023-03-26
  • 2 回答
  • 0 关注
  • 162 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信