Я пытался отправить своим пользователям электронное письмо с подтверждением laravel.
Сначала я запускаю это
php artisan make:notification SendRegisterEmailNotifcation
Это создало файл с именем SendRegisterEmailNotifcation.php
внутри моего App/Notifications
.
Затем внутри метода хранения моего пользовательского контроллера я вызвал этот метод после вставки пользователем.
Ниже приведена функция моего магазина:
public function store(Request $request)
{
request()->validate([
'name' => ['required', 'alpha','min:2', 'max:255'],
'last_name' => ['required', 'alpha','min:2', 'max:255'],
'email' => ['required','email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:12', 'confirmed','regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{12,}$/'],
'mobile'=>['required', 'regex:/^\+[0-9]?()[0-9](\s|\S)(\d[0-9]{8})$/','numeric','min:9'],
'username'=>['required', 'string', 'min:4', 'max:10', 'unique:users'],
'roles'=>['required'],
'user_roles'=>['required'],
]);
//Customer::create($request->all());
$input = $request->all();
$input['password'] = Hash::make($input['password']);
$user = User::create($input);
$user->assignRole($request->input('roles'));
//event(new Registered($user));
$user->notify(new SendRegisterMailNotification());
return redirect()->route('customers.index')
->with('success','Customer created successfully. Verification email has been sent to user email. ');
}
И это мой SendRegisterMailNotification.php
<?php
namespace App\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
class SendRegisterMailNotification extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
}
/**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->line('The introduction to the notification.')
->action('Click Here to Activate', url('/'))
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
Теперь этот процесс работает хорошо, вновь созданные пользователи получают свои электронные письма ,
Но проблема в
Обычно в laravel ссылка активации имеет определенный формат, и как только пользователь нажимает на кнопку пользователя, кнопка активируется и сохраняет проверенное время в таблице пользователя, а также срок действия ссылки истекает через 60 минут.
Пример ссылки для проверки,
http://test.site/email/verify/22/3b7c357f630a62cb2bac0e18a47610c245962182?expires=1588247915&signature=7e6869deb1b6b700dcd2a49b2ec66ae32fb0b6dc99aa0405095e9844962bb53c
Но в моем случае я изо всех сил пытаюсь установить эту ссылку активации и процесс правильно, Как я могу сделать это с помощью выше настроенный адрес электронной почты?