前端之家收集整理的这篇文章主要介绍了
捕获PHP mail()错误并显示合理的用户错误消息,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个相当简单的
注册
PHP脚本,它使用
PHP内置的mail()
函数向
用户发送激活
链接.
问题是我可以抓住正常的错误,如电子邮件格式化,但一旦它被关闭到服务器,并说一个用户已经放入一个电子邮件地址失败,我不知道如何抓住这个错误,告诉用户什么发生了.
例如目前我得到这个:
Warning: mail() [function.mail]: SMTP server response: 554
: Recipient address rejected: Relay access
denied in ** on line 70
对于这样的错误,我能做什么想法?我知道使用@符号来抑制错误,但是我想要做更多的事情来处理这个问题.
使用布尔值结果来检测
错误:
$success = @mail(...);
那么你想知道哪些内部错误导致了问题,所以使用:
$error = error_get_last();
preg_match("/\d+/",$error["message"],$error);
switch ($error[0]) {
case 554:
...
default:
...
请注意,这仅适用于PHP 5.2.
没有办法验证交付或使用PHP查看运输错误邮件.您将需要一个pop3轮询处理程序.
原文链接:https://www.f2er.com/php/130826.html