This commit is contained in:
Arina1810
2025-12-03 17:45:15 +00:00
parent 2afd5c58f0
commit a2284fa5e5
5 changed files with 129 additions and 1 deletions

View File

@@ -2,10 +2,12 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use App\Mail\RegisterUserMail;
use App\Models\User; use App\Models\User;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailable;
use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Mail;
use SebastianBergmann\CodeCoverage\Report\Xml\Project; use SebastianBergmann\CodeCoverage\Report\Xml\Project;
class UsersController extends Controller class UsersController extends Controller
@@ -26,7 +28,7 @@ class UsersController extends Controller
$user->save(); $user->save();
dispatch(function () use ($user) { dispatch(function () use ($user) {
Mail::to($user->email)->send(new Mailable()); Mail::to($user->email)->send(new RegisterUserMail($user->name));
}); });
return ['token' => $user->createToken(name:'frontend')->plainTextToken]; return ['token' => $user->createToken(name:'frontend')->plainTextToken];

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class AdminNewUserNotification extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*/
public string $name;
public string $email;
public function __construct(string $name, string $email)
{
$this->name = $name;
$this->email = $email;
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Новый пользователь зарегистрировался',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'emails.admin_new_user',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [];
}
}

View File

@@ -0,0 +1,54 @@
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
class RegisterUserMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*/
public string $name;
public function __construct(string $name)
{
$this->name = $name;
}
/**
* Get the message envelope.
*/
public function envelope(): Envelope
{
return new Envelope(
subject: 'Регистрация завершена',
);
}
/**
* Get the message content definition.
*/
public function content(): Content
{
return new Content(
view: 'emails.register',
);
}
/**
* Get the attachments for the message.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [];
}
}

View File

@@ -0,0 +1,8 @@
<!DOCTYPE html>
<html>
<body>
<h1>На сайте зарегистрировался новый пользователь</h1>
<p><strong>Имя: {{ $name }}</strong></p>
<p><strong>Email: {{ $email }}</strong></p>
</body>
</html>

View File

@@ -0,0 +1,7 @@
<!DOCTYPE html>
<html>
<body>
<h1>Привет, "{{ $name }}"!</h1>
<p>Спасибо за регистрацию на нашем сайте.</p>
</body>
</html>