Add email notifications for new registered user on site, send welcome email to new users

This commit is contained in:
DariusIII
2019-02-08 10:30:09 +01:00
parent 7499f24fc6
commit 9771bec534
7 changed files with 149 additions and 0 deletions
+1
View File
@@ -1,4 +1,5 @@
2019-02-08 DariusIII
* Chg: Add email notifications for new registered user on site, send welcome email to new users
* Chg: Comment out missed dict definition in sphinx.conf (resolves issue #878)
2019-02-07 DariusIII
* Chg: Update used libraries
+42
View File
@@ -0,0 +1,42 @@
<?php
namespace App\Jobs;
use App\Mail\WelcomeEmail;
use App\Models\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;
/**
* @var \App\Models\User
*/
private $user;
/**
* Create a new job instance.
*
* @param \App\Models\User $user
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::to($this->user->email)->send(new WelcomeEmail($this->user));
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Mail;
use App\Models\Settings;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class NewAccountCreatedEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* @var \App\Models\User
*/
private $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from(Settings::settingValue('site.main.email'))->subject('New account registered')->view('emails.newAccountCreated')->with(['username' => $this->user->username, 'site' => Settings::settingValue('site.main.title')]);
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php
namespace App\Mail;
use App\Models\Settings;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
/**
* @var \App\Models\User
*/
private $user;
/**
* Create a new message instance.
*
* @param \App\Models\User $user
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from(Settings::settingValue('site.main.email'))->subject('Welcome to '. Settings::settingValue('site.main.title'))->view('emails.welcome')->with(['username' => $this->user->username, 'site' => Settings::settingValue('site.main.title')]);
}
}
+4
View File
@@ -2,6 +2,8 @@
namespace App\Observers;
use App\Jobs\SendNewRegisteredAccountMail;
use App\Jobs\SendWelcomeEmail;
use App\Models\User;
use Jrean\UserVerification\Facades\UserVerification;
@@ -17,6 +19,8 @@ class UserServiceObserver
*/
public function created(User $user)
{
SendNewRegisteredAccountMail::dispatch($user);
SendWelcomeEmail::dispatch($user);
UserVerification::generate($user);
UserVerification::send($user, 'User email verification required');
@@ -0,0 +1,9 @@
@extends('emails.email_layout')
@section('title')
New user registered
@endsection
@section('content')
User <b>{{ $username }}</b> has registered a new account on {{ $site }}.
@endsection
+13
View File
@@ -0,0 +1,13 @@
@extends('emails.email_layout')
@section('title')
Welcome to {{ $site }}
@endsection
@section('content')
Dear {{ $username }},
<br>
Welcome to our site. Your account verification will be sent in separate email.
<br><br><br>
Greetings from {{ $site }}
@endsection