Garantindo Entrega de E-mails: Fallback Plain Text e Anti-Spam
De nada adianta programar todo o fluxo transacional se seus e-mails chegam na caixa de SPAM do cliente. Aprenda os segredos do Multipart Email e dicas de reputação.
Criar templates HTML bonitos, com banners e botões personalizados para a recuperação de senha da sua aplicação, é o padrão visual exigido hoje. Porém, existe uma armadilha silenciosa: os filtros anti-spam (como os do Gmail e Outlook).
O Segredo do Fallback Plain Text
Quando você envia um e-mail apenas com a variante HTML (sem uma contraparte em Texto Puro/Plain Text), os provedores penalizam fortemente a sua mensagem. Os clientes de e-mail de linha de comando ou leitores de tela para acessibilidade exigem texto puro.
Ferramentas como o NodeMailer possuem o formato Multipart/Alternative, onde a mensagem contém os dois formatos embutidos no mesmo envio.
import nodemailer from 'nodemailer';
import * as aws from '@aws-sdk/client-ses';
export class SESMailProvider {
public async sendMail(to: string, subject: string, htmlContent: string, textContent: string) {
const sesClient = new aws.SES({ region: process.env.AWS_REGION });
const transporter = nodemailer.createTransport({
SES: { ses: sesClient, aws },
});
await transporter.sendMail({
from: 'Equipe <noreply@seuapp.com>',
to,
subject,
html: htmlContent, // A versão bonita em HTML
text: textContent, // OBRIGATÓRIO: O Fallback em Texto puro
});
}
}Se você utiliza motores de template dinâmicos, como o Handlebars, pode compilar o conteúdo em HTML, e em seguida utilizar um pacote como html-to-text para gerar a versão Plain Text de forma 100% automatizada a partir do HTML.
Fatores Adicionais de Reputação
- SPF, DKIM e DMARC: Seus DNS devem estar configurados com esses três registros de segurança. O provedor de e-mail que não encontra isso joga sua mensagem instantaneamente no Spam.
- Equilíbrio Imagem / Texto: Templates com um banner gigante e um botão isolado são interpretados como e-mail malicioso. Tente manter uma boa proporção de texto real (escrito no HTML) em relação às imagens.
- E-mails transacionais vs E-mails em massa: Separe-os. Use um domínio ou subdomínio exclusivo para a sua API transacional (ex:
noreply@auth.seuapp.com) e outro para sua equipe de marketing mandar newsletters. Um disparo ruim do marketing pode sujar a reputação do domínio e impedir seus clientes de recuperarem senhas.
Conclusão
Desenvolvimento de e-mails em um projeto robusto vai muito além de codificar um template HTML. Dominar os conceitos de entregabilidade e Multi-part é o que garante que os usuários recebam notificações essenciais da sua plataforma no momento correto.