From 9771bec5349ee519f9e074cbb1c546b513af0f2e Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 8 Feb 2019 10:30:09 +0100 Subject: [PATCH] Add email notifications for new registered user on site, send welcome email to new users --- Changelog | 1 + app/Jobs/SendWelcomeEmail.php | 42 +++++++++++++++++++ app/Mail/NewAccountCreatedEmail.php | 40 ++++++++++++++++++ app/Mail/WelcomeEmail.php | 40 ++++++++++++++++++ app/Observers/UserServiceObserver.php | 4 ++ .../views/emails/newAccountCreated.blade.php | 9 ++++ resources/views/emails/welcome.blade.php | 13 ++++++ 7 files changed, 149 insertions(+) create mode 100644 app/Jobs/SendWelcomeEmail.php create mode 100644 app/Mail/NewAccountCreatedEmail.php create mode 100644 app/Mail/WelcomeEmail.php create mode 100644 resources/views/emails/newAccountCreated.blade.php create mode 100644 resources/views/emails/welcome.blade.php diff --git a/Changelog b/Changelog index b5e3e2d7c..5fa699bc7 100755 --- a/Changelog +++ b/Changelog @@ -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 diff --git a/app/Jobs/SendWelcomeEmail.php b/app/Jobs/SendWelcomeEmail.php new file mode 100644 index 000000000..974bb2706 --- /dev/null +++ b/app/Jobs/SendWelcomeEmail.php @@ -0,0 +1,42 @@ +user = $user; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + Mail::to($this->user->email)->send(new WelcomeEmail($this->user)); + } +} diff --git a/app/Mail/NewAccountCreatedEmail.php b/app/Mail/NewAccountCreatedEmail.php new file mode 100644 index 000000000..1651b644c --- /dev/null +++ b/app/Mail/NewAccountCreatedEmail.php @@ -0,0 +1,40 @@ +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')]); + } +} diff --git a/app/Mail/WelcomeEmail.php b/app/Mail/WelcomeEmail.php new file mode 100644 index 000000000..e81457cd8 --- /dev/null +++ b/app/Mail/WelcomeEmail.php @@ -0,0 +1,40 @@ +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')]); + } +} diff --git a/app/Observers/UserServiceObserver.php b/app/Observers/UserServiceObserver.php index a6c4bf894..530ac26f5 100644 --- a/app/Observers/UserServiceObserver.php +++ b/app/Observers/UserServiceObserver.php @@ -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'); diff --git a/resources/views/emails/newAccountCreated.blade.php b/resources/views/emails/newAccountCreated.blade.php new file mode 100644 index 000000000..1624ee6c3 --- /dev/null +++ b/resources/views/emails/newAccountCreated.blade.php @@ -0,0 +1,9 @@ +@extends('emails.email_layout') + +@section('title') + New user registered +@endsection + +@section('content') + User {{ $username }} has registered a new account on {{ $site }}. +@endsection diff --git a/resources/views/emails/welcome.blade.php b/resources/views/emails/welcome.blade.php new file mode 100644 index 000000000..7a890239c --- /dev/null +++ b/resources/views/emails/welcome.blade.php @@ -0,0 +1,13 @@ +@extends('emails.email_layout') + +@section('title') + Welcome to {{ $site }} +@endsection + +@section('content') + Dear {{ $username }}, +
+ Welcome to our site. Your account verification will be sent in separate email. +


+ Greetings from {{ $site }} +@endsection