php - PEAR 邮件不发送但也不报告错误

标签 php email pear

我正在尝试使用 PEAR Mail 通过 PHP 发送电子邮件,但尽管页面报告邮件已发送,但它从未到达(我将其发送给自己进行测试)。

我一直在研究如何处理错误,如果我打开严格报告,我会收到大约六份这样的报告:

Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in Blah Blah Blah! on line 450

Strict Standards: Non-static method PEAR::raiseError() should not be called statically, assuming $this from incompatible context in Blah Blah Blah! on line 451

在我的阅读中,我被告知这些错误不会阻止脚本成功,而且大多数人只是关闭严格报告,但在我的情况下,脚本不起作用。

我尝试了以下方法来捕获错误...

try {
$host = "ssl://mail.example.com";  
$port = 25;
$auth = true; // turn on SMTP authentication  
$username = "name@example.com"; // SMTP username  
$password = "password"; // SMTP password 

$mail = Mail::factory('smtp', 
        array('host'=>$host,'port'=>$port,'auth'=>true,'username'=>$username,'password'=>$password));
$mail->send($to,$headers,$message);
} catch (Exception $e) {
echo "Exception: " . $e->getMessage();
}
echo "Message Successfully Sent!";

而且也没有 try catch 和简单地使用...

if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}

在这两种情况下,页面都会报告“电子邮件已成功发送!”但邮件没有到达。如果我故意输入错误的用户名和密码或虚构的邮件服务器,则不会报告任何错误。

在这种情况下我该如何进行错误检查?如果我给它一个明显的错误,为什么脚本仍然可以运行?

谢谢 格雷格

最佳答案

达贡,

感谢您为我指明了正确的方向。进一步搜索后,我发现了如何设置 $params['debug'],这让我找到了问题的根源。

因此,对于那些努力寻找一种方法来调试邮件发送尝试的人来说,答案是......

$params = array('debug'=>true,'host'=>$host,'port'=>$port,'auth'=>true,'username'=>$username,'password'=>$password);
$mail = Mail::factory('smtp', $params);
$mail->send($to,$headers,$message);

这将显示邮件连接响应以及发送到邮件服务器以进行调试的所有内容。

关于php - PEAR 邮件不发送但也不报告错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942779/

相关文章:

iphone - SKPSMTP消息设置WatchdogTimer :]: message sent to deallocated instance

php - 如何根据一组特定的编码约定检查 PHP 代码?

php - 通过 pear 安装 phpunit/PHPUnit-3.5.5(用于 Sonar )

php - 我怎样才能让 phpunit 从文件夹中的所有文件运行测试?

php - 我们如何将存储为 varchar 的日期转换为日期

php - MySQL 查询可以帮助找到相似的客户记录吗?

php - 如何在php中转换这种日期格式?

c# - 将文件从 MemoryStream 附加到 C# 中的 MailMessage

php - 如何在 WordPress 管理菜单中添加基于用户的链接

javascript - 使用 JavaScript 中的 onblur 事件验证电子邮件