E-mail Não Enviando
Solução de problemas passo a passo para problemas de entrega de e-mail.
Passo 1: Verificar o Básico
# Verificar as configurações SMTP no .env
grep MAIL_ .env
Verifique:
MAIL_MAILER=smtp(nãologounull)MAIL_HOSTestá corretoMAIL_PORTestá correto (587 para TLS, 465 para SSL)MAIL_USERNAMEeMAIL_PASSWORDestão preenchidosMAIL_ENCRYPTION=tls(oussl)
Passo 2: Testar pelo Painel Admin
- Vá em Admin > Configurações > E-mail
- Clique em Enviar E-mail de Teste
- Verifique a mensagem de erro se falhar
Passo 3: Testar pela Linha de Comando
php artisan tinker
Mail::raw('Teste', function ($m) {
$m->to('[email protected]')->subject('Teste');
});
Verifique storage/logs/laravel.log para erros.
Problemas Comuns
| Problema | Solução |
|---|---|
| "Connection timed out" | Porta 587/465 bloqueada pela hospedagem. Tente a porta 2525 ou entre em contato com o host. |
| "Authentication failed" | Usuário/senha incorretos. Para Gmail, use a Senha de App. |
| "Certificate verify failed" | PHP antigo. Tente 'verify_peer' => false nas opções do mailer em config/mail.php. |
| E-mails indo para spam | Adicione registros SPF, DKIM e DMARC no DNS. |
| E-mails atrasados | Usando QUEUE_CONNECTION=database? Certifique-se de que o worker de fila está rodando. |
| Sem erro mas sem e-mail | Usando MAIL_MAILER=log? Os e-mails estão sendo registrados, não enviados. Verifique storage/logs/laravel.log. |
Usando MAIL_MAILER=log para Depuração
Defina MAIL_MAILER=log no .env para capturar todos os e-mails no arquivo de log em vez de enviá-los. Útil para verificar o conteúdo do e-mail sem afetar destinatários reais.