laravel中的密码恢复电子邮件没有发送给用户,这是我在控制器中的功能:
public function recover(Request $request)
{
$validator = Validator::make($request->only('email'), [
'email' => 'required'
]);
if($validator->fails()) {
throw new ValidationHttpException($validator->errors()->all());
}
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject(Config::get('boilerplate.recovery_email_subject'));
});
switch ($response) {
case Password::RESET_LINK_SENT:
// return $this->response->noContent();
return response()->json(['success' => true, 'data' => $response], 200);
case Password::INVALID_USER:
// return $this->response->errorNotFound();
return response()->json(['success' => false, 'data' => $response], 200);
}
}我配置了我的.env和mail.php,我使用的是laravel 5.6
发布于 2019-03-05 17:07:12
如果您使用gmail地址发送邮件,请使用
转到https://myaccount.google.com/lesssecureapps
然后通过打开它来允许。
还可以使用
php artisan config:clear 当你试图通过一些代码发送电子邮件时,
MAIL_DRIVER=sendmail,并且还使用
php artisan config:clear 发布于 2019-03-08 20:28:30
首先,尝试找到问题所在。
我建议在执行此函数后尝试设置MAIL_DRIVER=log并检查laravel.log。如果在日志中什么也没有找到,那么您就不是在尝试发送它。在这种情况下,最常见的问题是使用队列,所以,检查.env中的QUEUE_CONNECTION变量,它应该等于"sync“(或者设置您的驱动程序,如果需要,就像Redis一样)。
通过使用" log“驱动程序,您应该在日志中看到您的消息。如果它与"log“一起工作得很好,而不能与smtp一起工作,那么你应该会得到一个关于它的错误。如果出现错误,请将其发布。如果不是,也要说出来。
另外,请注意,如果你使用的是php artisan serve,所有来自.env的变量只有在重启php服务器后才会更新。
https://stackoverflow.com/questions/54999034
复制相似问题