【发布时间】:2021-10-21 16:20:46
【问题描述】:
我正在创建一个佣金审批模块,当管理员拒绝佣金请求时,它将删除佣金并将电子邮件发送回提交者。但是,当我测试代码时,它会显示这样的错误。在对此错误进行了更多测试后,我意识到只有当管理员拒绝具有电子邮件但在邮件服务器中不存在的用户时才会发生这种情况。我知道我在邮件功能中使用的代码来自旧版本,但是这个系统已经开发了很多年。我的问题是如何正确处理抛出的错误?最好,我希望系统重定向回主页并显示错误页面,就像它在下面的代码中完成的那样。请注意,当前代码还不足以处理错误。
错误:
预期的响应代码为 354,但得到代码“503”,消息为“503-All RCPT 命令因以下错误而被拒绝:503-此处没有此类用户” 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',
]);
}
【问题讨论】:
-
这是验证邮件发件人的问题。发件人邮件与
.env中配置的 mail_username 不匹配