Восстановить пароль почта не отправляется пользователю laravel - PullRequest
0 голосов
/ 05 марта 2019

электронная почта восстановления пароля в 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

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Прежде всего, попробуйте найти проблему.

Я бы предложил попробовать установить MAIL_DRIVER=log и проверить laravel.log после выполнения этой функции.Если в журнале ничего не найдено - значит вы не пытаетесь его отправить.В этом случае наиболее распространенной проблемой является использование очередей, поэтому проверьте переменную QUEUE_CONNECTION в .env, она должна быть равна «sync» (или настроить драйвер, например, Redis, если требуется).

При использовании драйвера «log» вы должны увидеть свое сообщение в журнале.Если он отлично работает с «log» и не работает с smtp, вы должны получить ошибку об этом.Если ошибка присутствует - пожалуйста, опубликуйте ее.Если нет - скажите также.

PS обратите внимание, что если вы используете php artisan serve, все переменные из .env будут обновляться только после перезапуска php-сервера.

0 голосов
/ 05 марта 2019
  1. , если вы используете адрес электронной почты для отправки почты.затем вам нужно в менее защищенном приложении.

    перейти к https://myaccount.google.com/lesssecureapps

    , затем разрешить, включив его.

    , а также использовать

 php artisan config:clear 

иногда гугл блокирует при попытке отправить электронное письмо через какой-то код.В этом случае вы получили оповещение по почте.нажмите на это письмо (Отметьте Активность) и отметьте как Да (Вы признаете эту активность?)

Или вы можете попробовать

MAIL_DRIVER=sendmail

а также использовать

php artisan config:clear 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...