File manager - Edit - /var/www/html/portal/app/Http/Resources/Admin/DiagnosticoEmailResource.php
Back
<?php namespace App\Http\Resources\Admin; /** * Regras de negócio do módulo de Diagnóstico de E-mail: * exposição segura da configuração e tradução de erros SMTP. */ class DiagnosticoEmailResource { /** * Retorna a configuração de e-mail em uso, sem expor a senha. * * @return array<string, mixed> */ public function configSegura(): array { $mailer = config('mail.default'); $smtp = config("mail.mailers.{$mailer}", []); return [ 'default' => $mailer, 'transport' => $smtp['transport'] ?? null, 'host' => $smtp['host'] ?? null, 'port' => $smtp['port'] ?? null, 'encryption' => $smtp['encryption'] ?? null, 'username' => $smtp['username'] ?? null, 'from_address' => config('mail.from.address'), 'from_name' => config('mail.from.name'), ]; } /** * Extrai o código de status SMTP (4xx/5xx) da mensagem de erro, se houver. */ public function extrairCodigoSmtp(\Throwable $e): ?int { if (preg_match('/\b(421|450|451|452|550|554)\b/', $e->getMessage(), $m)) { return (int) $m[1]; } return null; } /** * Traduz a exceção de envio em uma mensagem clara, indicando o lado provável da falha. */ public function traduzErroSmtp(\Throwable $e): string { $mensagem = $e->getMessage(); if (preg_match('/User unknown|550 5\.1\.1|no such user|recipient/i', $mensagem)) { return __('O servidor de e-mail rejeitou o remetente/destinatário (caixa inexistente). A causa está no provedor de e-mail, não na aplicação.'); } if (preg_match('/TLS|SSL|certificate|stream_socket|Connection could not be established|timed out|Connection refused/i', $mensagem)) { return __('Falha na conexão/criptografia com o servidor SMTP. Verifique host, porta e MAIL_ENCRYPTION (ex.: porta 465 exige SSL; porta 587 exige TLS).'); } if (preg_match('/\b(421|450|451|452|554)\b|Intrusion prevention|too many|rate/i', $mensagem)) { return __('O servidor de e-mail recusou temporariamente o envio (bloqueio/limite do provedor). Tente novamente em alguns minutos.'); } if (preg_match('/535|authentication|auth|credentials|password/i', $mensagem)) { return __('Falha de autenticação no servidor SMTP. Verifique usuário e senha de e-mail.'); } return __('Falha no envio do e-mail de teste: :erro', ['erro' => $mensagem]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings