Por que email ainda importa para desenvolvedores
Email e um dos protocolos mais antigos da internet e, paradoxalmente, um dos mais incompreendidos por desenvolvedores modernos. Muitos times simplesmente contratam um serviço como SendGrid, Mailgun ou Amazon SES e nunca pensam mais nisso. Mas entender como o email funciona por dentro e essencial quando algo da errado, quando você precisa reduzir custos de API, ou quando quer ter controle total sobre a entrega de mensagens críticas para seu negócio.
Um artigo recente no Hacker News trouxe de volta uma discussão interessante: email moderno pode ser construido com partes emprestadas. A ideia central e que os componentes necessários para montar uma infraestrutura de email solida já existem como open source, estão bem documentados e são usados por organizações de todos os tamanhos. O que falta para a maioria dos times e entender como esses componentes se encaixam.
Neste post, vamos desmistificar a infraestrutura de email, mostrar os componentes que você pode reutilizar e quando faz sentido montar sua própria stack versus usar um serviço gerenciado.
Mesmo que você use um serviço de email gerenciado (SendGrid, SES, etc.), entender como o protocolo SMTP funciona vai te ajudar enormemente a depurar problemas de entrega, bounces e reputação de domínio.
Como funciona o envio de email por baixo dos panos
Quando você envia um email, vários sistemas entram em ação. O processo simplificado e: seu servidor faz uma conexão SMTP com o servidor de email do destinatário, autentica a mensagem com assinaturas digitais, e o servidor destino decide se aceita, rejeita ou coloca em spam com base em vários fatores.
Os principais protocolos envolvidos são:
- SMTP (Simple Mail Transfer Protocol): o protocolo básico de transferência. Roda na porta 25 (entre servidores), 587 (submissão autenticada) ou 465 (SSL/TLS).
- SPF (Sender Policy Framework): um registro DNS que declara quais servidores estão autorizados a enviar email pelo seu domínio. Previne spoofing básico.
- DKIM (DomainKeys Identified Mail): assina digitalmente cada email com uma chave privada. O servidor destino verifica a assinatura com a chave pública publicada no DNS.
- DMARC (Domain-based Message Authentication): define o que fazer quando SPF e DKIM falham. Também gera relatórios de abuso que você pode monitorar.
- MX Records: registros DNS que indicam qual servidor aceita email para um domínio.
Entender esses protocolos e fundamental tanto para quem vai montar a própria infra quanto para quem usa serviços gerenciados e precisa configurar esses registros DNS corretamente.
Enviar email do seu servidor sem configurar SPF, DKIM e DMARC corretamente garante que suas mensagens vao para o spam ou serão rejeitadas. Esses não são opcionais em 2026.
Os componentes open source que você pode reutilizar
Aqui estão os principais blocos de construção disponíveis gratuitamente:
- Postfix: o MTA (Mail Transfer Agent) mais usado no mundo. Altamente configurável, bem documentado e mantido ativamente. Roda em qualquer servidor Linux e e o backbone de muitos serviços de email corporativos.
- Dovecot: servidor IMAP e POP3 para armazenamento e acesso a caixas de email. Usado em conjunto com Postfix para montar um servidor de email completo.
- OpenDKIM: implementação open source do DKIM para assinar e verificar emails. Integra-se diretamente com Postfix como milter.
- SpamAssassin: filtro de spam baseado em regras e machine learning. Pode ser integrado no pipeline de recebimento para bloquear mensagens indesejadas.
- Rspamd: alternativa moderna ao SpamAssassin, com interface web e suporte nativo a DKIM, ARC e outros protocolos modernos de autenticação.
- Mailu, Mail-in-a-Box, iRedMail: stacks pre-configuradas que juntam todos esses componentes em uma instalação simplificada via Docker ou script.
Para aplicações que só precisam ENVIAR email (transacional), considere o Postal ou o Haraka em vez do Postfix completo. São servidores SMTP focados em envio, com painel de controle e API HTTP, ideais para aplicações web que não precisam receber email diretamente.
Como começar: montando um relay SMTP básico
Para uma aplicação que precisa enviar email transacional (confirmações, notificações, alertas), a solução mais simples e montar um relay SMTP usando Postfix como intermediário. Segue o passo a passo em um servidor Ubuntu:
# Instalar Postfix
sudo apt update && sudo apt install -y postfix
# Durante a instalação, escolha: Internet Site
# System mail name: seu-domínio.com.br
# Instalar OpenDKIM
sudo apt install -y opendkim opendkim-tools
# Gerar par de chaves DKIM
sudo mkdir -p /etc/opendkim/keys/seu-domínio.com.br
sudo opendkim-genkey -b 2048 -d seu-domínio.com.br -D /etc/opendkim/keys/seu-domínio.com.br/ -s mail
sudo chown -R opendkim: /etc/opendkim/keys/
# Ver a chave pública para adicionar no DNS
sudo cat /etc/opendkim/keys/seu-domínio.com.br/mail.txtDepois de gerar as chaves, você adiciona a chave pública como registro DNS TXT no seu provedor de domínio. O registro SPF e também um TXT no DNS:
# Exemplo de registro SPF no DNS (TXT em @):
v=spf1 ip4:SEU_IP_DO_SERVIDOR include:_spf.google.com ~all
# Registro DKIM (TXT em mail._domainkey):
# Cole aqui o conteúdo do arquivo mail.txt gerado pelo opendkim-genkey
# Registro DMARC (TXT em _dmarc):
v=DMARC1; p=none; rua=mailto:dmarc@seu-domínio.com.brExemplo prático: enviando email pela aplicação
Com o relay SMTP configurado, sua aplicação pode usar a biblioteca de email da sua linguagem preferida. Em Python:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def enviar_email(destinatário: str, assunto: str, corpo_html: str):
msg = MIMEMultipart('alternative')
msg['Subject'] = assunto
msg['From'] = 'noreply@seu-domínio.com.br'
msg['To'] = destinatário
parte_html = MIMEText(corpo_html, 'html', 'utf-8')
msg.attach(parte_html)
with smtplib.SMTP('localhost', 587) as smtp:
smtp.starttls()
smtp.login('usuário', 'senha')
smtp.sendmail(msg['From'], destinatário, msg.as_string())
# Uso:
enviar_email('[email protected]', 'Bem-vindo!', 'Ola!
')Para aplicações com volume alto de envio, vale usar uma biblioteca como aiosmtplib (Python async) ou conectar diretamente via API de um relay comercial (AWS SES, Mailgun) que usa o mesmo Postfix por baixo, mas com gestão de reputação de IP incluída.
Quando usar infra própria versus serviço gerenciado
Montar sua própria infraestrutura de email tem vantagens claras em alguns cenários, mas também tem custos ocultos que precisam ser considerados:
Infra própria faz sentido quando: você tem volume alto de envio e o custo de API seria proibitivo, precisa de controle total sobre os logs e dados, tem equipe com experiência em administração de sistemas, ou opera em um segmento com restrições regulatorias sobre terceiros que processam seus dados.
Serviço gerenciado faz sentido quando: você esta começando e não quer se preocupar com reputação de IP, precisa de alta entregabilidade sem configurar nada, tem volume baixo ou médio (geralmente mais barato que manter servidor), ou não tem equipe para monitorar e manter a infra de email.
A realidade para a maioria das startups e que começar com SendGrid, SES ou Mailgun e a escolha certa. Migrar para infra própria quando o custo de API se torna relevante e uma transição natural e bem documentada.
Pontos positivos e limitações da abordagem open source
Pontos positivos:
- Custo zero de software - você paga só pelo servidor
- Controle total sobre logs, dados e configuração
- Sem limites artificiais de envio (apenas os do seu servidor e reputação de IP)
- Personalização ilimitada da stack
- Sem dependência de fornecedor externo
Limitações reais:
- Reputação de IP leva tempo para construir em um IP novo
- Manutenção ativa: atualizações, monitoramento de blacklists, gestão de bounces
- Configuração inicial complexa para quem não tem experiência em sysadmin
- IPs de provedores de cloud (AWS, DigitalOcean) frequentemente já chegam com reputação ruim em listas de bloqueio
Se você usar um VPS novo para enviar email, provavelmente seu IP já esta em alguma blacklist. Verifique em mxtoolbox.com/blacklists antes de começar. Para construir reputação, comece com volume baixo e aumente gradualmente.
Casos de uso reais
Quem se beneficia mais de entender e montar infraestrutura de email própria?
1. Startup com volume crescente de email transacional: quando o custo de SendGrid começa a pesar no CAC, entender como migrar parte do envio para infra própria com Postal ou Postfix pode economizar centenas de dólares por mes.
2. Desenvolvedor backend construindo SaaS: integrar envio de email corretamente desde o inicio, com DKIM, SPF e DMARC configurados, garante que os emails de boas-vindas e recuperação de senha do seu produto cheguem na caixa de entrada.
3. Equipe de DevOps configurando alertas: para alertas internos de sistema, montar um relay SMTP local elimina dependência de serviços externos e garante que alertas críticos cheguem mesmo quando ha restrições de rede.
4. Desenvolvedor fullstack aprendendo infra: montar um servidor de email completo e um dos melhores exercícios práticos de DNS, Linux, criptografia e protocolos de rede que existe. O aprendizado se aplica em muitas outras áreas de infra.
Dicas e boas práticas
Use o mail-tester.com para testar a qualidade da sua configuração de email antes de começar a enviar em volume. Ele verifica SPF, DKIM, DMARC, blacklists e pontuação de spam.
Configure sempre um email de abuse@ e postmaster@ no seu domínio. Muitos provedores de email verificam se esses endereços existem ao decidir se aceitam mensagens do seu servidor.
Implemente um sistema de gerenciamento de bounces desde o inicio. Emails que retornam (bounces hard) devem ser removidos imediatamente da sua lista. Alta taxa de bounce destrói a reputação do seu IP rapidamente.
Nunca envie email em massa pelo mesmo servidor que recebe email de produção. Se o IP for bloqueado por spam em um envio em massa, todos os emails transacionais (confirmações, resets de senha) também param de funcionar.
Vale a pena aprender sobre infraestrutura de email?
Absolutamente. Email pode parecer tecnologia antiga e chata, mas continua sendo o canal de comunicação mais confiável e universal que existe. Entender como funciona por baixo dos panos e um diferencial real para desenvolvedores backend e fullstack.
Vale a pena para: desenvolvedores que querem entender a infra completa de suas aplicações, times que querem reduzir custos de API de email, qualquer pessoa que quer aprender protocolos de rede e DNS na prática.
Comece por: configurar SPF, DKIM e DMARC no seu domínio atual (mesmo que use um serviço gerenciado). Depois, experimente o Mail-in-a-Box em um VPS de teste para ver como os componentes se encaixam na prática. Você não precisa migrar nada de produção agora para aprender como o email funciona.
Comentários
Deixar um comentárioVocê precisa ter uma conta no CuritibaBlog para comentar.