Laravel 5.7 - Письмо с подтверждением не отправлено - PullRequest
0 голосов
/ 29 сентября 2018

Я обновил свой экземпляр laravel с версии 5.6 до версии 5.7.Сейчас я пытаюсь использовать встроенную проверку электронной почты от laravel .

Моя проблема в том, что я не получаю электронное письмо после успешной регистрации, когда я использую функцию «переслать», когда приходит электронное письмо.

В чем проблема?

Ответы [ 5 ]

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

В дополнение к ответу djug, если вы столкнулись с той же проблемой после обновления с версии 5.6, как и я, вы найдете пошаговое руководство по реализации:

https://laravel.com/docs/5.7/upgrade

в разделе Подтверждение по электронной почте

Надеюсь, это кому-нибудь поможет, поскольку я довольно долго боролся с этим.

0 голосов
/ 07 февраля 2019

на случай, если кто-то другой ищет решение для той же проблемы.

, пожалуйста, прочитайте документацию, она точно объясняет, что нужно сделать для решения этой проблемы

https://laravel.com/docs/5.7/verification

в двух словах, и если вы уже используете 5.7 (т.е. у вас есть необходимые поля в вашей таблице users), все, что вам нужно сделать, это следующее:

  • makeВ вашей модели User реализован интерфейс MustVerifyEmail.
  • добавьте ['verify' => true] к методу Auth::routes Auth::routes(['verify' => true]);

, все, что вам нужно о проверке электронной почты, можно найти вссылка выше.

0 голосов
/ 24 октября 2018

У меня тоже была такая же проблема.Поскольку я проверил исходный код, нет необходимости реализовывать вызов метода sendEmailVerificationNotfication(), вам просто нужно добавить обработчик событий в ваш EventServiceProvider.php, так как ваш обработчик событий был создан ранее, поэтому Larael не можетобновить это.Это должно выглядеть так:

namespace App\Providers;

use Illuminate\Support\Facades\Event;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

class EventServiceProvider extends ServiceProvider
{
    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
    ];
0 голосов
/ 25 ноября 2018

Если у вас есть пользовательская страница регистрации, вы можете просто запустить событие после создания пользователя следующим образом:

event(new Registered($user));

0 голосов
/ 20 октября 2018

У меня была такая же проблема.Это код по умолчанию от Laravel.

Чтобы отправить электронное письмо после успешной регистрации, вы можете сделать этот обходной путь:

в App \ Http \ Controllers \ Auth \ RegisterController

изменить это:

protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }

к этому:

protected function create(array $data)
    {
        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        $user->sendEmailVerificationNotification();

        return $user;
    }
...