-
Notifications
You must be signed in to change notification settings - Fork 13
Description
❗ E-mails SMTP não chegam no Gmail ao usar Mail::build()
no Laravel 11
Fala, galera do Laravel 👋
Estou enfrentando um problema com envio de e-mails no Laravel 11 ao configurar dinamicamente o SMTP usando Mail::build()
.
Minha aplicação carrega as credenciais de SMTP diretamente do banco de dados, e eu monto dinamicamente o mailer antes de enviar. Tudo funciona perfeitamente, exceto para endereços do Gmail — o e-mail simplesmente não chega (nem na caixa de spam).
✅ O que funciona
Se eu envio o e-mail usando a configuração padrão do .env
(sem Mail::build()
), o Gmail recebe normalmente.
❌ O que não funciona
Quando uso Mail::build([...])
para configurar dinamicamente as credenciais SMTP do banco, o Gmail não recebe o e-mail — nenhuma mensagem de erro, nem bounce, nem spam, nem rastro.
🧪 Exemplo reproduzível
<?php
namespace App\Services\Email;
use App\Services\Email\EmailServiceInterface;
use Illuminate\Support\Facades\Mail;
class SmtpService implements EmailServiceInterface
{
protected array $config;
public function __construct(array $config)
{
$this->config = $config;
}
public function enviar(string $destinatario, string $assunto, string $html): void
{
$mailer = Mail::build([
'transport' => 'smtp',
'host' => $this->config['host'],
'port' => $this->config['port'],
'encryption' => $this->config['encryption'],
'username' => $this->config['username'],
'password' => $this->config['password'],
'from' => [
'address' => $this->config['from_email'],
'name' => $this->config['from_name'],
],
'timeout' => $this->config['timeout'] ?? 10,
]);
// Isso aqui não chega no Gmail
$mailer->to("[email protected]")->send(new EmailGenerico($assunto, $html));
// Isso funciona normalmente
// $mailer->to("[email protected]")->send(new EmailGenerico($assunto, $html));
}
}
🔍 Artigos que consultei
Esses artigos me ajudaram a entender como o Mail::build()
funciona, mas nenhum fala sobre problemas específicos com Gmail:
- 📄 Como enviar e-mail no Laravel com SMTP (SendLayer)
- 📄 Resolvendo problemas de envio no Laravel 11 (Medium)
- 📄 Permitindo que usuários enviem e-mail com SMTP próprio no Laravel (Laravel News)
🤔 O que eu suspeito
Parece que ao usar Mail::build()
, algo sutil está faltando — talvez algum cabeçalho, DKIM, configuração de domínio, assinatura digital, etc. O mais estranho é que nenhum erro é lançado, e tecnicamente o e-mail é "enviado".
📣 O que eu preciso
- Alguém já passou por isso ou sabe se é uma limitação conhecida do
Mail::build()
? - Tem algo extra que eu deveria configurar? (tipo headers manuais, nome do mailer, DKIM, etc.)
- Alguma dica para conseguir fazer o Gmail aceitar os e-mails enviados com
Mail::build()
?
Agradeço muito qualquer ajuda ou insight! 🙏