0

I want to have 2 notifications when new user registered:

  1. inform admin that we have new user for moderation
  2. send welcome email to new user

I created 2 events, put them in EventServiceProvider, but as result I have 2 emails to admin. I already tried to register 4 users with different emails, but none of them receive welcome email. It is always sent to admin config('mail.to.address') For some reason welcome email sent to admin, instead of new user. What's wrong? My code is below.

EventServiceProvider

    protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
            SendWelcomeEmail::class,
            SendNewUserRegisteredEmail::class,
        ],
    ];

SendWelcomeEmail

<?php

namespace App\Listeners;

use Mail;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Auth\Events\Registered;

class SendWelcomeEmail
{
    public function __construct()
    {
    }

    public function handle(Registered $event)
    {
        $data = array(
            'name' => $event->user->name, 
            'email' => $event->user->email
        );
 
        Mail::send('emails.welcome', $data, function($message) use ($data) {
            $message->to($data['email'])
                    ->subject('Добро пожаловать на сайт '.config('app.name'). '.');
            $message->from(config('mail.from.address'));
        });
    }
}

SendNewUserRegisteredEmail

<?php

namespace App\Listeners;

use Mail;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Auth\Events\Registered;

class SendNewUserRegisteredEmail
{

    public function __construct()
    {
    }

    public function handle(Registered $event)
    {
        $data = array(
            'name' => $event->user->name, 
            'email' => $event->user->email
        );
 
        Mail::send('emails.registered', $data, function($message) use ($data) {
            $message->to(config('mail.to.address'))
                    ->subject('Новый пользователь на сайте '.config('app.name'). '.');
            $message->from(config('mail.from.address'));
        });
    }
}

schel4ok
  • 634
  • 1
  • 11
  • 33

0 Answers0