加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 14:08:59 所属栏目:PHP教程 来源:网络整理
导读:我正在编写一个相当简单的注册 PHP脚本,它使用 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轮询处理程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读