捕获PHP mail()错误并显示合理的用户错误消息

前端之家收集整理的这篇文章主要介绍了捕获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

猜你在找的PHP相关文章