2026-09-23 09:42:01 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Bo;
|
|
|
|
|
|
|
|
|
|
use App\Http\Controllers\Controller;
|
|
|
|
|
use App\Http\Requests\Bo\SendTestMailRequest;
|
|
|
|
|
use App\Models\User;
|
2026-09-25 10:45:00 +02:00
|
|
|
use App\Services\Mail\MailTesterService;
|
2026-09-23 09:42:01 +02:00
|
|
|
use Illuminate\Contracts\View\View;
|
|
|
|
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
2026-09-25 10:45:00 +02:00
|
|
|
use Throwable;
|
2026-09-23 09:42:01 +02:00
|
|
|
|
|
|
|
|
class MailTesterController extends Controller
|
|
|
|
|
{
|
2026-09-25 10:45:00 +02:00
|
|
|
public function __construct(
|
|
|
|
|
private readonly MailTesterService $mailTesterService
|
|
|
|
|
) {
|
2026-09-23 09:42:01 +02:00
|
|
|
$this->middleware('can:testMails,' . User::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function listMails(): View
|
|
|
|
|
{
|
|
|
|
|
return view('bo.mail-testing');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function sendMail(SendTestMailRequest $request): RedirectResponse
|
|
|
|
|
{
|
2026-09-23 12:49:47 +02:00
|
|
|
$firstname = 'Jean';
|
|
|
|
|
$lastname = 'Dupuis';
|
2026-09-25 10:45:00 +02:00
|
|
|
$recipient = $request->getToAddress("{$firstname} {$lastname}");
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$this->mailTesterService->send(
|
|
|
|
|
mailType: $request->getMailToTest(),
|
|
|
|
|
recipient: $recipient,
|
|
|
|
|
firstname: $firstname,
|
|
|
|
|
lastname: $lastname
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return back()->with('success', __("Le mail a été envoyé à l'adresse {$recipient->address}"));
|
|
|
|
|
} catch (Throwable $e) {
|
|
|
|
|
report($e);
|
2026-09-25 16:25:31 +02:00
|
|
|
|
2026-09-25 10:45:00 +02:00
|
|
|
return back()->with('error', "Échec lors de l'envoi du mail : {$e->getMessage()}");
|
2026-09-23 09:42:01 +02:00
|
|
|
}
|
2026-09-23 12:49:47 +02:00
|
|
|
}
|
2026-09-23 09:42:01 +02:00
|
|
|
}
|