netgescon-day0/app/Console/Commands/TestMailCommand.php

42 lines
1.7 KiB
PHP

<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Mail;
class TestMailCommand extends Command
{
protected $signature = 'netgescon:test-mail {email=netgescon@gmail.com : Destinatario di test}';
protected $description = 'Verifica la connessione SMTP Google Workspace / NetGescon e invia un\'email di diagnostica';
public function handle(): int
{
$recipient = trim((string) $this->argument('email'));
$this->info("Diagnostica Configurazione Posta NetGescon:");
$this->line("- MAILER: " . config('mail.default'));
$this->line("- HOST: " . config('mail.mailers.smtp.host') . ":" . config('mail.mailers.smtp.port'));
$this->line("- USERNAME: " . config('mail.mailers.smtp.username'));
$this->line("- MITTENTE: " . config('mail.from.address') . " (" . config('mail.from.name') . ")");
$this->line("- CODA (QUEUE_CONNECTION): " . config('queue.default'));
$this->line("- DESTINATARIO TEST: " . $recipient);
$this->info("Invio in corso...");
try {
Mail::raw("Questa e un'email di diagnostica inviata dal server NetGescon (.205) per confermare la corretta attivazione del servizio SMTP con account Google Workspace ({$recipient}). Data/ora: " . now()->toIso8601String(), function ($message) use ($recipient) {
$message->to($recipient)
->subject('NetGescon - Test Connessione Servizio Email');
});
$this->info("Email di test recapitata con successo a {$recipient}!");
return self::SUCCESS;
} catch (\Throwable $e) {
$this->error("Errore invio email: " . $e->getMessage());
return self::FAILURE;
}
}
}