注册填写不存在的邮箱(例如 666@qq.com)报错 [ 2.0 版本 ]
注册填写不存在的邮箱(例如 666@qq.com
)报错。
报错信息:预期的响应代码354,但得到代码“503”,消息“503错误:需要RCPT命令”
怎么破?
王玉坛 补充于 2019-07-25 11:18
你说得对,不是yii2的语法错误,的确是因为发送给不存在的邮箱就会这样报错,但是用户万一不小心把自己的邮箱多填或少填一个字符,而这个错误的邮箱地址压根就不存在,用户一提交,就会报错,报错是正常的,但是能不能像QQ邮箱那样报错啊,而不是yii2常见的出现一大堆乱码,我们程序员看还好,不懂技术的人一看,什么鬼!马上就把我辛辛苦苦做的网站关掉。我的意思是说:能不能把报错页面显示得优雅一些,看下面两张图:
这是yii2注册时填一个不存在的邮箱地址666@qq.com的报错信息页面:
这是QQ邮箱给666@qq.com发信时的提示:
王玉坛 补充于 2019-07-26 16:08
解决办法如下:
1.关闭入口文件的调试模式:把index.php文件的YII_DEBUG设置成false 。
2.在error.php文件内做判断,全部代码如下:
<?php
use yii\helpers\Html;
$this->title = $name;
?>
<h1><?= Html::encode($this->title) ?></h1>
<div class="alert alert-danger">
<?php if(strpos($exception,'Expected response code 354 but got code "503"')){ ?>
<?php echo '此邮箱不存在!请检查。';?>
<?php }else{ ?>
<?php echo nl2br(Html::encode($exception)) ?>
<?php } ?>
</div>
<p>
Web服务器处理您的请求时发生上述错误。
</p>
<p>
如果您认为这是服务器错误,请联系我们。谢谢您。
</p>
<a href="<?= Yii::$app->request->referrer ?>">返回上一页</a><!-- 这个是我加上去的 -->
效果如下:
共 2 个回答
-
return19931112 回答于 2019-07-25 15:09 举报
- 关闭
debug
模式 - 捕获发送短信异常
共 3 条回复return19931112 回复于 2019-07-25 16:17 回复@王玉坛 捕获异常之后自己处理,无论是弹窗提示用户还是记录日志都行
@王玉坛 线上产品应该关闭 debug 模式,按照这位 @return19931112 回答做就好了,那个报错就是个异常啊,把这个异常捕获出来,然后再提示一下前台说邮箱不存在就行了
- 关闭
王玉坛 广州市
注册时间:2017-11-04
最后登录:2020-04-30
在线时长:4小时57分
最后登录:2020-04-30
在线时长:4小时57分
- 粉丝1
- 金钱15
- 威望0
- 积分55