برای ارسال ایمیل حاوی لینک تایید در زمان ثبت نام کاربر تغییراتی را در مدل User باید انجام بدید و یکسری از موارد دیگر رو نیز لازم است تا انجام بدید.
وارد مدل User خود شوید و متد زیر را به آن اضافه نمائید :
public function sendEmailVerificationNotification()
{
dispatch(new SendVerificationEmailJob($this));
}
البته توجه کنید قبلش یک job برای ارسال ایمیل تاییدیه ایجاد کنید که من ایجاد کردم و اسمشو گذاشتم SendVerificationEmailJob و سپس وارد job مربوطه شوید و متد handle این کلاس رو به شکل زیر تغییر بدید :
public function handle()
{
$this->user->notify(new VerifyEmailQueued($this->user));
}
در اینجا هم میبینید که یک نوتیفیکیشن از قبل ایجاد کردیم و فراخوانی اش هم اینجا انجام دادیم که بهش یوزر فعلی رو هم پاس میدیم.
محتویات داخل فایل job به شکل زیر خواهد بود :
<?php
namespace App\Jobs;
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;
use App\Mail\ConfirmEmail;
use App\Notifications\VerifyEmailQueued;
class SendVerificationEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct($user)
{
$this->user = $user;
}
public function handle()
{
$this->user->notify(new VerifyEmailQueued($this->user));
}
}
حالا وارد فایل نوتیفیکیشن میشیم و در کانستراکتور این کلاس مقدار متغییر user رو دریافت میکنیم
public function __construct($user)
{
$this->user = $user;
}
سپس متد toMail رو هم به صورت زیر بنویسید :
public function toMail($notifiable)
{
$temporarySignedURL = URL::temporarySignedRoute('verification.verify', \Carbon\Carbon::now()->addMinutes(60), ['id' => $notifiable->getKey()]);
return (new MailMessage)
->subject(sprintf("فعالسازی حساب کاربری"))
->action('فعالسازی حساب کاربری',$temporarySignedURL)
->line('Thank you for using our application!');
}
درباره این سایت