Да!Возможно.И для этого вам нужно будет переписать sendEmailVerificationNotification
в вашем App\User
.Этот метод обеспечивается чертой Illuminate\Auth\MustVerfiyEmail
.Метод sendEmailVerificationNotification
уведомляет созданного user
, отправляя электронное письмо, как определено в Illuminate\Auth\Notifications\VerifyEmail
классе уведомлений.
// This is the code define in the sendEmailVerificationNotification
public function sendEmailVerificationNotification()
{
$this->notify(new Notifications\VerifyEmail);
}
Вы можете изменить этот метод, чтобы не уведомлять непосредственно пользователя.Вам нужно определить Job
, который вы отправите в методе sendEmailVerificationNotification
вместо уведомления созданного пользователя.
В классе Job
, который вы создадите в нем, метод handle
вы можетеотправьте электронное письмо на user
, но вы должны предоставить $user
для задания, которое можно выполнить, передав его в качестве параметра методу dispatch
, подобному этому
public function sendEmailVerificationNotification()
{
VerifyEmail::dispatch($this);
}
$this
inметод представляет созданное user
, а созданное вами задание App\Jobs\VerififyEmail
получит все параметры, передаваемые в dispatch
, в нем __construct
Код VerifyEmail
будет выглядеть следующим образомэто
namespace App\Jobs;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Auth\Notifications\VerifyEmail;
class VerifyEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function handle()
{
// Here the email verification will be sent to the user
$this->user->notify(new VerifyEmail);
}
}