Skip to content

Commit 083384a

Browse files
authored
Merge pull request #32 from laravelcm/unverified-mail-notification
✨ ajout de l'envoie de lien a tous les utilisateurs non veri…
2 parents 266d984 + 34a2346 commit 083384a

File tree

6 files changed

+74
-1
lines changed

6 files changed

+74
-1
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace App\Console\Commands;
4+
5+
use App\Mail\SendMailToUnVerifiedUsers;
6+
use App\Models\User;
7+
use Illuminate\Console\Command;
8+
use Illuminate\Support\Facades\Mail;
9+
10+
class SendUnVerifiedMails extends Command
11+
{
12+
protected $signature = 'lcm:send-unverified-mails';
13+
14+
protected $description = 'Send mails to unverified users to prevent from a deletion account.';
15+
16+
public function handle(): void
17+
{
18+
foreach (User::unVerifiedUsers()->get() as $user) {
19+
Mail::to($user)->send(new SendMailToUnVerifiedUsers($user));
20+
}
21+
}
22+
}

app/Console/Kernel.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ protected function schedule(Schedule $schedule)
2828
$schedule->command('lcm:delete-old-unverified-users')->daily();
2929
// $schedule->command('lcm:post-article-to-twitter')->twiceDaily(12, 16);
3030
$schedule->command('lcm:post-article-to-telegram')->everyFourHours();
31+
$schedule->command('lcm:send-unverified-mails')->weeklyOn(1, '8:00');
3132
$schedule->command('sitemap:generate')->daily();
3233
}
3334

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
3+
namespace App\Mail;
4+
5+
use App\Models\User;
6+
use Illuminate\Bus\Queueable;
7+
use Illuminate\Contracts\Queue\ShouldQueue;
8+
use Illuminate\Mail\Mailable;
9+
use Illuminate\Queue\SerializesModels;
10+
11+
class SendMailToUnVerifiedUsers extends Mailable
12+
{
13+
use Queueable, SerializesModels;
14+
15+
public function __construct(public User $user)
16+
{
17+
}
18+
19+
/**
20+
* Build the message.
21+
*
22+
* @return $this
23+
*/
24+
public function build()
25+
{
26+
return $this->subject('Vérification Email')
27+
->markdown('emails.send-mail-to-un-verified-users');
28+
}
29+
}

app/Models/User.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,11 @@ public function scopeVerifiedUsers(Builder $query): Builder
247247
return $query->whereNotNull('email_verified_at');
248248
}
249249

250+
public function scopeUnVerifiedUsers(Builder $query): Builder
251+
{
252+
return $query->whereNull('email_verified_at');
253+
}
254+
250255
/**
251256
* Retrieve a setting with a given name or fall back to the default.
252257
*/

resources/views/emails/new_reply.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
{{ $reply->excerpt(200) }}
77
@endcomponent
88

9-
@component('mail::button', ['url' => route('forum.show', $reply->replyAble->slug())])
9+
@component('mail::button', ['url' => route('forum.show', $reply->replyAble->slug()), 'color' => 'green'])
1010
Voir le sujet
1111
@endcomponent
1212

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
@component('mail::message')
2+
3+
Bonjour **{{ $user->name }}**,
4+
5+
Vous recevez ce mail parce que vous avez créé votre compte sur Laravel Cameroun {{ $user->created_at->diffForHumans() }},
6+
et a ce jour vous n'avez pas encore vérifié votre adresse mail.
7+
8+
Pour éviter toute suppression de votre compte il vous reste {{ $user->created_at->addDays(10)->diffInDays(now()) }} jour(s) pour valider votre adresse email.
9+
10+
@component('mail::button', ['url' => route('verification.notice'), 'color' => 'green'])
11+
Renvoyer le lien
12+
@endcomponent
13+
14+
Merci d'utiliser Laravel Cameroun,<br>
15+
{{ config('app.name') }}
16+
@endcomponent

0 commit comments

Comments
 (0)