好问题
Good  Question
  • 首 页
  • 问题
    • PHP
    • JAVA
    • CPlusPlus
    • C#
    • SQL
  • 关 于
  • 联 系
如何处理PHPMailer中的报错信息? 关闭 返回上一级  

如何处理PHPMailer中的报错信息?
+ 查看更多

发布日期:2018-03-10 14:56
分类:PHP
浏览次数:614
如下:
我尝试在一个小项目中使用PHPMailer,但我对于这个软件的错误处理有点困惑。希望有人能够处理它。当我设置电脑邮件时我使用:
$result = $mail->Send();
if(!$result) {
    // There was an error
    // Do some error handling things here} else {
    echo "Email successful";}
这段代码基本可以运行,但是当有一个错误时就出现了问题。PHPMailer也输出了错误信息,如果有错误的话,就会直接向浏览器发送信息,最终导致我不能按照想法处理错误信息。有什么方式让PHPMailer不输出信息吗?它不会抛出异常,只会打印出错误,
我遇到的错误是错误是这样的:
invalid address: @invalid@email You must provide at least one recipient email address.
像这样的错误信息应该保留在$mail->ErrorInfo中,而不是被这个软件输出。

回答:

简单的说,您可以在实例化PHPMailer的时候指定不输出错误:$mail = new PHPMailer(true) //true意味着不输出,而是抛异常
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!}
上一篇PHPMailer :SMTP Error: Could not connect to SMTP host.
通过PHPMailer使用Gmail SMTP服务器发送邮件下一篇
下一篇通过PHPMailer使用Gmail SMTP服务器发送邮件

最新文章

  • 函数`__construct`用来干嘛的
    发布日期:2018-03-26
  • 通过访客的IP得到他们的地区
    发布日期:2018-03-26
  • 合并两个PHP对象的最好的方法是什么?
    发布日期:2018-03-26
  • 该如何把一该如何把一个对象转化成数组?
    发布日期:2018-03-26
  • 什么是输出缓冲区?
    发布日期:2018-03-26
  • 在PHP中怎么把用逗号分隔的字符串分隔在一个数组里?
    发布日期:2018-03-26
  • 在PHP中使用foreach循环时查找数组的最后一个元素
    发布日期:2018-03-26
关于好问
收集整理一些有用的问题和回答,造福中国的程序旺和IT喵们!
友情链接
起飞页 
相关信息
版权声明
Copyright © 2016 - 2022  苏州卡达网络科技有限公司 备案号:苏ICP备09008221号