当前位置: 首页 > 面试题库 >

PHPMailer处理错误

仲孙钊
2023-03-14
问题内容

我正在尝试将PHPMailer用于一个小项目,但对于此软件的错误处理有些困惑。希望有人有经验。设置电子邮件后,我将使用:

$result = $mail->Send();

if(!$result) {
    // There was an error
    // Do some error handling things here
} else {
    echo "Email successful";
}

哪个工作正常,或多或少。问题是当出现错误时,PHPMailer似乎也会回显该错误,因此,如果出现问题,它将直接将该信息发送到浏览器,从本质上打破了我试图做的任何错误处理。

有没有办法使这些消息静音?它没有抛出异常,只是打印出错误,在我的测试案例中是:

invalid address: @invalid@email You must provide at least one recipient email address.

它的意思是一个错误,但是应该驻留在$ mail-> ErrorInfo;中。不会被软件回显。


问题答案:

PHPMAiler使用异常。尝试采用以下代码:

require_once '../class.phpmailer.php';

$mail = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch

try {
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}


 类似资料:
  • 我已经为发送电子邮件编写了自己的代码点火器模型。直到最近我开始出现这个错误,一切都很好: 致命错误:无法在/home/mysite/public\u html/subdir/application/libraries/phpmailer/class中重新声明类phpmailerException。phpmailer。php在线2319 我正在使用: 代码点火器2 PHP点火器5.1 我尝试了以下方

  • 通过对错误类型实现 Display 和 From,我们能够利用上绝大部分标准库错误处理工具。然而,我们遗漏了一个功能:轻松 Box 我们错误类型的能力。 标准库会自动通过 Form 将任意实现了 Error trait 的类型转换成 trait 对象 Box<Error> 的类型(原文:The std library automatically converts any type that imp

  • 错误处理(error handling)是处理可能发生失败情况的过程。例如读取一个文件失败,然后继续使用这个失效的输入显然是有问题的。错误处理允许我们以一种显式的方式来发现并处理这类错误,避免了其余代码发生潜在的问题。 有关错误处理的更多内容,可参考官方文档的错误处理的章节。

  • 处理一个 RESTful API 请求时, 如果有一个用户请求错误或服务器发生意外时, 你可以简单地抛出一个异常来通知用户出错了。 如果你能找出错误的原因 (例如,所请求的资源不存在),你应该 考虑抛出一个适当的HTTP状态代码的异常 (例如, yii\web\NotFoundHttpException意味着一个404 HTTP状态代码)。 Yii 将通过HTTP状态码和文本发送相应的响应。 它还

  • Yii 内置了一个error handler错误处理器,它使错误处理更方便, Yii错误处理器做以下工作来提升错误处理效果: 所有非致命PHP错误(如,警告,提示)会转换成可获取异常; 异常和致命的PHP错误会被显示, 在调试模式会显示详细的函数调用栈和源代码行数。 支持使用专用的 控制器操作 来显示错误; 支持不同的错误响应格式; error handler 错误处理器默认启用, 可通过在应用的

  • 介绍 当你启动一个新的 Laravel 项目时,错误及异常处理是已为你配置好了的。App\Exceptions\Handler 类负责记录应用程序触发的所有异常并呈现给用户。在本文档中,我们将深入探讨这个类。 配置 config/app.php 配置文件中的 debug 选项决定了对于一个错误实际上将显示多少信息给用户。默认情况下,该选项的设置将遵照存储在 .env 文件中的 APP_DEBUG