🎨 Ajoute le mail d'accueil

This commit is contained in:
Shikiryu 2019-09-25 15:25:22 +02:00
parent 1aa27066ad
commit 70afcacd21
5 changed files with 114 additions and 0 deletions

View File

@ -0,0 +1,40 @@
<?php
namespace App\Jobs;
use App\Mail\WelcomeMail;
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\Support\Facades\Mail;
class SendWelcomeEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private $user;
/**
* Create a new job instance.
*
* @param \App\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::to($this->user->getEmailForVerification())
->queue(new WelcomeMail($this->user));
}
}

View File

@ -0,0 +1,34 @@
<?php
namespace App\Listeners;
use App\Jobs\SendWelcomeEmail;
use App\User;
use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Carbon;
class SendWelcomeNotification
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param \Illuminate\Auth\Events\Registered $event
*
* @return void
*/
public function handle(Registered $event)
{
$emailJob = (new SendWelcomeEmail($event->user))->delay(Carbon::now()->addSeconds(3));
dispatch($emailJob);
}
}

37
app/Mail/WelcomeMail.php Normal file
View File

@ -0,0 +1,37 @@
<?php
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class WelcomeMail extends Mailable
{
use Queueable, SerializesModels;
/** @var \App\User */
private $user;
/**
* Create a new message instance.
*
* @param \App\User $user
*/
public function __construct(User $user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.welcome', ['user' => $this->user]);
}
}

View File

@ -2,6 +2,7 @@
namespace App\Providers;
use App\Listeners\SendWelcomeNotification;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@ -17,6 +18,7 @@ class EventServiceProvider extends ServiceProvider
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
SendWelcomeNotification::class,
],
];

View File

@ -0,0 +1 @@
<?php