Skip to content

❗ E-mails SMTP não chegam no Gmail ao usar Mail::build() no Laravel 11 #221

@elciospy

Description

@elciospy

❗ 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:


🤔 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! 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions