我正在创建一个佣金审批模块,当管理员拒绝佣金请求时,它将删除佣金并将电子邮件发送回提交者。但是,当我测试代码时,它显示了如下错误。在对这个错误进行了更多的测试之后,我意识到,只有当管理员拒绝了一个拥有电子邮件但在邮件服务器中不存在的用户时,才会发生这种情况。我知道我在邮件功能中使用的代码来自旧版本,但这个系统已经开发了很多年。我的问题是如何正确处理抛出的错误?最好,我希望系统重定向回主页,并显示错误页面,就像它是如何在下面的代码完成。请注意,当前的代码还不足以处理这个错误。
错误:
期望响应代码354,但得到代码503,消息为503-AllRCPT命令被拒绝,并出现以下错误:503-No Such User Here"503有效的RCPT命令必须在DATA
之前
错误截图
代码:
try { // email sending actual part here
Mail::send([], [], function($message)use($data) {
$message->from($data['from'])
->to($data["email"])
->subject($data["subject"])
->setBody($data["messages"], 'text/html');
});
} catch(JWTException $exception){
$this->serverstatuscode = "0";
$this->serverstatusdes = $exception->getMessage();
}
if(Mail::failures()) {
$this->statusdesc = "Error sending mail";
$this->statuscode = "0";
return redirect()->route('voyager.dashboard')
->with([
'message' => "Commission is rejected but fail to send email",
'alert-type' => 'warning',
]);
} else {
return redirect()->back()
->with([
'message' => "Commission is rejected and comment is sent via email successfully",
'alert-type' => 'success',
]);
}
错误的基础可能是Mail Sender Verification Error
。当mail from
的值与.env
中的mail_username
的值不同时,会产生这样的错误信息
例如,如果您在来自facade的邮件中使用sender@mail.com
,并且在.env中配置了类似'sender@corporate.com'的东西,那么您将绑定接收错误。
要解决这个问题,请确保.env文件中的mail_user
中配置的电子邮件应该是用作邮件地址的mail from helper
从上面的例子中-> From()中的then应该是->from('sender@corporate.com')