Guia pilar · 22 min de leitura · Atualizado em May 2026

Email marketing auto-hospedado em 2026 — seja dono da sua lista, do seu envio e dos seus custos.

Email marketing auto-hospedado significa rodar o software de campanhas, a base de assinantes e o pipeline de envio em infraestrutura que você controla — em vez de alugar isso da Mailchimp, Brevo ou um SaaS similar. A troca é real: você assume o devops em troca de custo-por-envio linear, residência total de dados e entregabilidade que escala com a sua reputação, não com a da plataforma. Este guia percorre a arquitetura, a matemática de custo, os fundamentos de entregabilidade e as plataformas — com cada afirmação rastreável a um caminho de arquivo ou uma fonte publicada.

Neste guia

  1. O que é email marketing auto-hospedado?
  2. Como funciona — a arquitetura
  3. Por que times migram para auto-hospedado
  4. A matemática de custo de 5K a 200K assinantes
  5. Escolhendo sua arquitetura de envio
  6. Plataformas open-source — comparação objetiva
  7. Roadmap de setup (servidor → DNS → warmup)
  8. Fundamentos de entregabilidade
  9. GDPR + residência de dados
  10. Quando auto-hospedado é a escolha errada
  11. FAQ
  12. Para onde ir em seguida

§1 · Definição

O que é email marketing auto-hospedado?

Email marketing auto-hospedado é a prática de rodar uma aplicação de email marketing — gestão de listas, editor de campanhas, fluxos de automação, analytics — no seu próprio servidor, junto com um pipeline de envio que você também controla. O oposto é o modelo SaaS onde um fornecedor (Mailchimp, Brevo, Constant Contact, Klaviyo, ConvertKit, MailerLite, Campaign Monitor) hospeda a aplicação e a infraestrutura de envio em seu nome, e cobra uma mensalidade que escala com a contagem de assinantes.

Um setup auto-hospedado tem três componentes, e você é dono dos dois de baixo:

  1. A camada de aplicação. Um web app instalável — tipicamente PHP/Laravel, Go, Ruby ou Node — que cuida de listas de assinantes, rascunhos de campanha, gatilhos de automação, tracking de clique/abertura e o dashboard que seus marketers usam. Exemplos: AcelleMail, Listmonk, Mautic, Sendy.
  2. O pipeline de envio. O mecanismo que pega uma mensagem na fila e a entrega a um Mail Transfer Agent (MTA) que fala SMTP com os servidores de email dos destinatários. Você pode rodar seu próprio MTA (Postfix, Postal, Haraka), usar um relay-as-a-service (Amazon SES, SendGrid, Mailgun, Postmark, SparkPost), ou ambos — dependendo do volume e da sua tolerância para trabalho de reputação de IP.
  3. A infraestrutura. Um VPS Linux, uma instância Postgres/MySQL gerenciada, uma fila Redis ou beanstalkd, um domínio que você controla e autoridade DNS para registros SPF, DKIM, DMARC e PTR. Uma lista pequena (abaixo de 50K assinantes) roda confortavelmente em um droplet de $5–$20/mês; listas maiores escalam horizontalmente com workers de fila adicionais e bancos com réplicas de leitura.

A troca que você está fazendo é trabalho administrativo por custo-por-envio e residência de dados. Os fornecedores SaaS abstraem os passos 2 e 3 inteiramente; você paga a eles o imposto de abstração em mensalidades que escalam com a contagem de assinantes. Auto-hospedar recupera esse imposto em troca do tempo que leva para provisionar um servidor, configurar DNS e montar um relay de envio — operações que hoje estão em menos de uma hora para quem já fez antes, e um fim de semana para um iniciante com a documentação na mão.

"Auto-hospedado" não deve ser confundido com "DIY do zero". Todas as principais plataformas open-source entregam como instalações turnkey — upload, configurar credenciais do banco, apontar um domínio. A parte DIY é o relay de envio e o DNS — e se você usa o Amazon SES (ou qualquer relay SMTP), a parte DIY encolhe para um formulário preenchido uma vez.

§2 · Arquitetura

Como um sistema de email marketing auto-hospedado realmente funciona.

Um envio de campanha caminha por cinco estágios. Entendê-los é o pré-requisito para escolher plataformas, escolher um relay de envio e depurar entregabilidade quando uma campanha sub-performa.

[Marketer's browser]
        │
        ▼  HTTPS POST /campaigns
[Web app — Laravel/Symfony/Go]  ◀── REST API also lands here
        │
        ▼  enqueue per-recipient job
[Job queue — Redis / beanstalkd / DB]
        │
        ▼  worker picks job, renders MIME
[Sending driver — SES/Mailgun/SMTP]
        │
        ▼  TLS, AUTH, DATA, .
[Mail Transfer Agent (MTA)]
        │
        ▼  SMTP to recipient MX
[Recipient mail server — Gmail/O365/Yahoo]
        │
        ▼  open pixel · click redirect · bounce · complaint
[Webhook back to web app] ◀── reputation feedback loop

Estágio 1 — autoria da campanha. O marketer escreve uma campanha na UI web: linha de assunto, nome do remetente, seleção de lista, editor de conteúdo (arrastar e soltar, MJML ou HTML cru). Quando clica em "enviar", a aplicação cria um registro de campanha e enfileira jobs por destinatário em uma fila de background. Nada sai do servidor ainda.

Estágio 2 — fila + worker. Workers de background puxam jobs no ritmo configurado para a fila (tipicamente 5–50 envios/segundo por worker). O worker busca a linha do assinante, mescla os campos personalizados no template, embute um pixel de tracking chaveado por message-id e reescreve cada link para um redirect de click-tracking. O resultado é uma mensagem MIME totalmente personalizada pronta para entregar a um driver de envio.

Estágio 3 — driver de envio. O driver é o adaptador entre sua aplicação e qualquer transporte que você escolher: uma chamada de API Amazon SES, um HTTPS POST para o Mailgun, uma chamada da Web API do SendGrid ou um handshake SMTP cru com AUTH PLAIN para o seu próprio MTA Postal. O padrão de driver de envio do AcelleMail, por exemplo, define um contrato de 5 métodos (connect, send, getDeliveryStatus, getCapabilities, validateConfig) que todo driver implementa — veja /developers/sending-drivers para o guia completo de drivers. Drivers nativos vêm para Amazon SES, SendGrid, Mailgun, SparkPost, Elastic Email, Gmail SMTP e qualquer servidor SMTP genérico (8 fornecedores vivem em app/SendingServers/Drivers/Vendors/).

Estágio 4 — MTA → destinatário. O MTA (seu ou do seu relay) abre uma conexão SMTP com o servidor MX do destinatário, se apresenta com um HELO/EHLO, negocia STARTTLS, autentica as chaves de assinatura DKIM e submete a mensagem. O servidor de email do destinatário roda pontuação de spam, verificação SPF/DKIM/DMARC, processamento do cabeçalho list-unsubscribe e ou coloca na inbox ou rejeita.

Estágio 5 — feedback loop. Três sinais voltam, todos assíncronos. Bounces chegam por SMTP (códigos 5xx para hard bounces, 4xx para soft) ou pelo webhook do relay. Reclamações (destinatário clicou "spam") chegam pelo Feedback Loop do provedor de caixa de entrada ou, de novo, pelo webhook do relay. Engajamento (hits no pixel de abertura, requisições de redirect de clique) chega por HTTP simples de volta para seu web app. A aplicação usa esses sinais para atualizar listas de supressão, aposentar endereços mortos e alimentar os analytics da campanha. O catálogo de eventos webhook do AcelleMail vive em config/webhook_events.php — é a lista canônica de eventos que a aplicação emite e consome.

O formato é o mesmo em toda plataforma auto-hospedada, com uma variável: onde a fila e o MTA vivem. O worker do AcelleMail roda na mesma máquina do web app por padrão; o Listmonk faz o mesmo; o Mautic usa Symfony Messenger e suporta máquinas de worker separadas. O relay de email pode ser local (Postal na mesma máquina, Postfix em uma máquina irmã) ou remoto (SES, Mailgun) — essa decisão é o assunto da §5.

§3 · Motivação

Por que times migram de SaaS para auto-hospedado.

1. Custo-por-envio fica linear

Preço SaaS escala com contagem de contatos independente de com que frequência você envia. Auto-hospedado desacopla os dois: software é custo fixo (grátis no Listmonk/Mautic, $80 pagamento único para o AcelleMail Standard, $59 para o Sendy); envios são cobrados por destinatário na tarifa publicada do relay (Amazon SES é $0.10 a cada 1.000). Em 50.000 assinantes enviando uma campanha por semana, a conta de taxa de plataforma vai de $385/mês no Mailchimp Standard para aproximadamente $20/mês em taxas de envio — veja §4 para a tabela.

2. Dados do assinante vivem no seu servidor

Endereços de email, campos personalizados, tags de segmentação, histórico de cliques, aberturas, reclamações — tudo num banco que você controla. Sem processador de dados de terceiros. Sem dumps de dados do lado da plataforma para integrações de fabric de marketing-data. Exportação CSV cobre tudo porque você escreveu o schema (ou pode lê-lo). Para um setup de billing SaaS com obrigações de auditoria, essa propriedade é a espinha dorsal da conformidade.

3. Entregabilidade escala com seu domínio

Numa plataforma SaaS, sua reputação de remetente é misturada com os outros tenants da plataforma. A reclamação de spam de um tenant vizinho pode sangrar na entregabilidade do seu domínio. Auto-hospedado via um relay como Amazon SES dá a opção de IP dedicado (ou compartilhado, sua escolha), e a reputação do From-domain que os provedores de caixa de entrada pontuam é sua sozinha. Warming, throttling e rotação de IP são alavancas visíveis, não comportamento oculto da plataforma.

4. Sem vendor lock-in por construção

O schema, os templates, os fluxos de automação e (para plataformas open-source) o código-fonte estão no seu disco. Migrar para fora de uma plataforma auto-hospedada é uma exportação de dados, não um projeto de integração. Migrar entre relays de envio é uma mudança de configuração. O custo de saída é o custo de mudar um formulário, não o custo de reconstruir nove meses de gatilhos de automação no editor de um novo fornecedor.

5. Postura de conformidade é sua para definir

Escolha uma região (eu-west-1, us-east-1, ap-southeast-1). Escolha janelas de retenção. Escolha quais campos personalizados são criptografados em repouso. A decisão Schrems II do Tribunal de Justiça Europeu fez transferências transfronteiriças de dados uma dor de cabeça legal recorrente para listas hospedadas em SaaS; auto-hospedado com infraestrutura UE tira essa pergunta da mesa. Veja §9.

6. Extensibilidade é código, não solicitação de feature

Uma segmentação customizada que a plataforma não suporta, um webhook para o seu CRM, um gateway de pagamento regional para seu billing de revendedor, um relatório específico de indústria — todos viram um plugin de 200 linhas ou uma query SQL, não uma submissão de roadmap. O AcelleMail entrega um SDK de plugins com onze documentos para desenvolvedor ancorados no código-fonte cobrindo hooks, lifecycle, drivers, gateways e testes.

§4 · Matemática de custo

O que realmente custa em 5K, 10K, 50K e 200K assinantes.

Premissas: uma campanha por assinante por semana (4,33 envios por mês por contato), Amazon SES na tarifa publicada de $0.10 a cada 1.000 emails, um VPS de $5–$20/mês para a aplicação e ou a licença Standard de pagamento único de $80 do AcelleMail amortizada em 36 meses, ou uma plataforma open-source grátis. Preço Mailchimp tier Standard conforme tarifa publicada em June 2026.

Assinantes Mailchimp Standard / mês Auto-hospedado SES + VPS / mês Economia em 3 anos
5.000$100~$7~$3.300
10.000$135~$9~$4.500
50.000$385~$25~$13.000
200.000$1.310~$90~$44.000

Coluna "Auto-hospedado" = taxa de envio SES + VPS $5–$20 + licença amortizada $2/mês. Exclui tempo de setup. Tarifas Mailchimp Standard conforme mailchimp.com/pricing/marketing 2026-05.

O que a matemática não captura

A tabela é conservadora em dois eixos e agressiva em um terceiro. Conservadora: assume uma campanha por semana — muitas listas enviam 2–4 por semana, o que dobra ou quadruplica a economia (envios são lineares na contagem, o teto do plano SaaS é o mesmo). Conservadora de novo: não modela a economia em email transacional (password resets, emails de recibo) que em SaaS muitas vezes fica em um plano separado de Mailchimp Transactional / Postmark / SendGrid e que auto-hospedado dobra na mesma conta do SES.

Agressiva: não cobra o tempo de engenharia do setup inicial nem da manutenção contínua. Uma estimativa razoável é 8–16 horas de engenharia para o primeiro install, depois 1–2 horas/mês para patches de OS, renovação de certificados, monitoramento de fila e curadoria da lista de bounces. Numa taxa interna de $100/h isso dá $200/mês de overhead — material a 5.000 assinantes, imaterial a 50.000, lucrativo a 200.000.

O modelo mental mais limpo: auto-hospedado é uma arquitetura de custo-fixo-por-envio, SaaS é uma arquitetura de imposto-por-assinante. Elas se cruzam em pontos diferentes para times diferentes, mas para qualquer lista acima de ~10.000 com envio semanal estável, o prêmio do SaaS vira a despesa dominante. /vs/mailchimp percorre a comparação lado a lado em granularidade de feature.

§5 · Arquitetura de envio

Escolhendo seu pipeline de envio.

Auto-hospedado permite desacoplar "o app de marketing" de "a coisa que fala SMTP". Três arquiteturas dominam; cada uma tem perfil diferente de custo, controle e reputação.

A. Relay SMTP em nuvem (recomendado para a maioria dos times)

Amazon SES, Mailgun, SendGrid, Postmark, SparkPost, Elastic Email — esses são relays comerciais que aceitam sua mensagem via API ou SMTP e cuidam da transação SMTP real com o destinatário. Eles publicam pools de IP, cuidam dos defaults de warming, monitoram blocklists e submetem relatórios de Feedback Loop. Os drivers de fornecedor do AcelleMail cobrem os cinco principais de fábrica (app/SendingServers/Drivers/Vendors/{Amazon, Mailgun, SendGrid, SparkPost, ElasticEmail}) mais SMTP genérico para qualquer outro.

Por que esse é o padrão: o SES custa $0.10 a cada 1.000 emails sem mínimo mensal. O relay cuida das partes complicadas (rDNS, MX de backup, lógica de retry, parsing de feedback de reclamação). O que você é dono é da reputação do seu domínio; o que você terceiriza é a reputação do IP. Para 95% dos times, esse split é o correto.

B. Rode seu próprio MTA (Postal / Postfix + DKIM)

O Postal é uma plataforma de email open-source que você instala no seu próprio servidor e trata como alvo SMTP do seu app de marketing. O Postfix é o MTA Unix venerável, mais flexível mas mais configuração. Ambos permitem controlar o IP de envio inteiramente, que é a decisão certa quando você tem requisitos específicos de entregabilidade (um banco, um provedor de saúde, um remetente de alto volume com mesa de abuso dedicada).

Por que isso é mais difícil: agora você é dono do IP warming, parsing de feedback de reclamação, remediação de blocklist e da rotação de plantão quando a porta 25 começa a emitir códigos 5xx. A maioria dos provedores de nuvem (DigitalOcean, AWS) restringe a porta 25 de saída por padrão — você precisa de um colo, um host MTA dedicado ou um provedor que explicitamente permita envio direto. Vale acima de ~10M envios/mês ou em indústrias reguladas; over-engineering para todo o resto.

C. Híbrido (múltiplos relays, rotação automática)

O AcelleMail (e a maioria das plataformas auto-hospedadas maduras) suporta mais de um servidor de envio configurado. Você pode rotear transacional pelo Postmark, marketing pelo SES e campanhas de reengajamento pelo Mailgun — cada um com sua própria cota diária, pool de IP e chave DKIM. Esse é o setup do remetente de alto volume: diversidade de relay limita o blast radius se o pool de IP de um provedor entrar em blocklist e permite casar custo-por-envio com urgência do envio. O registry de drivers (app/SendingServers/DriverRegistry.php) é o catálogo central.

Rubrica de decisão

  • Abaixo de 1M envios/mês, quer carga operacional mínima → Amazon SES (ou Mailgun se preferir o dashboard deles).
  • 1M–10M envios/mês, IP dedicado necessário → SES com IP dedicado ($24.95/mês por IP) ou SendGrid Pro.
  • 10M+ envios/mês, requisito regulatório para controle total do IP → Postal em infraestrutura própria.
  • SaaS multi-tenant onde cada cliente precisa do próprio domínio de envio → configuration sets do SES por domínio ou múltiplos subusers do SendGrid, configurados como múltiplos registros de servidor de envio na aplicação.

§6 · Plataformas

As principais plataformas open-source auto-hospedadas — comparação objetiva.

Disclosure. O AcelleMail é o publisher desta página. Citamos nossos próprios caminhos de código de forma transparente e linkamos para a documentação publicada de concorrentes para as afirmações factuais deles. A tabela abaixo registra modelo de licença, linguagem, modelo de envio e público-alvo principal — não juízos de valor.

Plataforma Licença Stack Envio nativo Foco principal
AcelleMail $80 pagamento único, código-fonte disponível PHP 8.3, Laravel 11, MySQL SES, Mailgun, SendGrid, SparkPost, Elastic, Gmail, SMTP genérico Billing SaaS multi-tenant + SDK de plugins
Listmonk AGPL v3 Go single binary, Postgres SMTP genérico, configurável por servidor Newsletter leve + transacional
Mautic GPL v3 PHP 8, Symfony, MySQL SMTP, Amazon SES, SendGrid (via plugins) Foco em marketing-automation, formato CRM
Sendy $59 pagamento único, código fechado PHP, MySQL Amazon SES (primário), SMTP genérico Envio de newsletter via SES, UI mínima
Postal MIT Ruby, MariaDB, RabbitMQ Atua como MTA (pareado com AcelleMail/Listmonk/Mautic) MTA + relay auto-hospedado (não é ferramenta de campanha)

Os principais eixos que diferenciam essas plataformas na prática:

  • Multi-tenancy. O AcelleMail e o Mautic ambos têm um modelo Customer/Plan que controla volume de envio por tenant — útil se você está revendendo email-marketing-como-serviço ou rodando um setup multi-marca. Listmonk e Sendy são single-tenant.
  • Automação de marketing. O Mautic foi construído com propósito em torno de lead-scoring + drip-flow + integração com CRM. O AcelleMail tem fluxos de automação com branches condicionais e gatilhos de evento (veja a página de automação). O Listmonk é intencionalmente em formato newsletter — campanhas e transacional, sem editor de fluxo.
  • Modelo de licença. Listmonk (AGPL v3) e Mautic (GPL v3) exigem divulgação de código-fonte de trabalhos derivados sob os termos dessas licenças; o AcelleMail é código-fonte disponível com uma licença Regular do CodeCanyon (uso em instalações ilimitadas que você controla) ou licença Extended (direitos de revenda). O Sendy é distribuído como binário de código fechado.
  • Modelo de plugin / extensão. O AcelleMail entrega um SDK de plugins documentado (hooks, lifecycle, drivers, gateways). O Mautic tem suporte a plugins orientado a bridges de CRM. Listmonk e Sendy não têm sistemas de plugin — extensões são forks.

A decisão é dirigida pelo formato do projeto, não "qual é melhor". Um autor solo de newsletter com 5.000 assinantes e nenhuma necessidade de plugin é bem servido pelo Listmonk. Um time SaaS que quer planos por cliente mais REST API mais um plugin para integrar o webhook de billing é o caso de uso do AcelleMail. Um time de vendas B2B pontuando leads é o caso de uso do Mautic. O Postal é encanamento — pareie com um dos outros.

§7 · Setup roadmap

From zero to first campaign — the seven-step roadmap.

A first-time setup with Amazon SES as the relay typically lands in 4–8 hours, with DNS propagation eating most of the wall-clock time. Subsequent installs (the second tenant, a staging environment) are 30 minutes.

1

Provision a Linux VPS

A $5–$10/month droplet (DigitalOcean, Hetzner, Vultr, OVH, AWS Lightsail) is enough for under 50K subscribers. Pick a region that matches your data-residency story — eu-west for EU customers, us-east for US, ap-southeast for APAC. Ubuntu 22.04 LTS or 24.04 LTS is the path of least surprise for any PHP-Laravel platform.

2

Install the runtime + database

For AcelleMail: PHP 8.3 with the imagick / mbstring / xml / curl / mysql extensions; MySQL 8 (or MariaDB 10.6+); Redis or beanstalkd for the queue; nginx as the reverse proxy. The standard Laravel deployment guide applies. For Listmonk: just the single Go binary plus Postgres. For Mautic: PHP 8, Symfony's extension list, MySQL, plus a queue worker.

3

Issue TLS + point your domain

Let's Encrypt via certbot covers TLS for free. Point an A record (or AAAA) at your droplet's IP. Add the application's domain (e.g. email.example.com) and a separate DKIM domain (e.g. mail.example.com — the bounced-from address) so reputation segments correctly.

4

Open a sending account (Amazon SES recommended)

Sign up to AWS, enable SES in the region of your choice, request production-mode access (24h turnaround), generate SMTP credentials. SES costs $0.10 per 1,000 emails and includes the first 62K/month free if you send from an EC2 instance — most setups won't qualify but the published rate is the rate. Configure a configuration set for tracking events (opens, clicks, bounces, complaints) and point its SNS topic at your application's webhook endpoint.

5

Set DNS authentication records

Three TXT records, plus DKIM-signing CNAMEs from SES. SPF: v=spf1 include:amazonses.com -all (or ~all for a softer first run). DKIM: 3 CNAMEs SES generates for you; copy them into your DNS. DMARC: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com for the first month while you watch the reports, tighten to p=quarantine then p=reject as confidence builds. PTR (reverse DNS) is your hosting provider's setting — for SES, AWS handles it.

6

Connect application → relay

In the platform's admin UI, add a sending server: pick "Amazon SES" (or "SMTP" for any other relay), paste credentials, set daily quota at 80% of your relay's published limit. Most platforms include a "Send test" button that fires a single message to a verified address — use it before any real campaign. AcelleMail's verification flow walks the validation pipeline at /developers/sending-drivers.

7

Warm the IP, watch the metrics

If you're on a fresh dedicated IP (rare for first-time SES), warm over 4–6 weeks: 50 sends day 1, doubling every 2–3 days, capped at the relay's daily limit. On SES shared IPs, this is handled for you. Watch bounce rate (target < 2%), complaint rate (target < 0.1%), and the Mailbox Provider deliverability dashboards (Google Postmaster Tools, Microsoft SNDS). Day 30: if metrics are stable, tighten DMARC; day 60: review send cadence and segment-level engagement.

§8 · Deliverability

The deliverability fundamentals every self-hosted sender owns.

Mailbox providers — Gmail, Outlook, Yahoo, Apple Mail — score every incoming message against a stack of authentication and reputation signals before deciding inbox vs. spam vs. reject. On SaaS the platform abstracts these signals; self-hosted you tune them yourself. The good news: the standards are public and stable.

SPF — Sender Policy Framework (RFC 7208)

A TXT record on your sending domain that lists the IPs allowed to send mail "as" that domain. Mailbox providers check the envelope-from against the SPF record; mismatches degrade reputation. With SES the record is one line: v=spf1 include:amazonses.com -all. For multi-relay setups, chain includes: v=spf1 include:amazonses.com include:mailgun.org -all. The -all tail says "anything not listed should be rejected"; for the first month use ~all (soft-fail) until you're confident the record is exhaustive.

DKIM — DomainKeys Identified Mail (RFC 6376)

A cryptographic signature on every outgoing message, signed by a key whose public half is published as a DNS TXT record at {selector}._domainkey.{domain}. The receiver fetches the public key and verifies the signature; tamper-evident header + body chain. SES generates three CNAMEs for you to add — done. Self-hosted MTAs need OpenDKIM or rspamd configured. DKIM failures don't usually trigger immediate rejection, but they erode the domain reputation score that drives placement.

DMARC — alignment + reporting (RFC 7489)

The policy on top of SPF + DKIM. DMARC says "the From-header domain must align with the SPF or DKIM domain, and here's what to do if alignment fails: monitor (p=none), quarantine (p=quarantine), or reject (p=reject)." Plus an rua address that gets daily aggregate reports of who's sending mail "as" you. Start at p=none for a month, read the reports, fix any forgotten subdomains, then move to p=quarantine, then p=reject. As of February 2024, Google and Yahoo require DMARC for bulk senders (5K+ sends/day) — not optional.

List hygiene — the suppression habit

Hard bounces (5xx codes — invalid mailbox, domain doesn't exist) must be suppressed permanently after the first occurrence; otherwise mailbox providers treat your list as poorly maintained. Soft bounces (4xx — full mailbox, temporary failure) are retried with exponential backoff and suppressed after 3–5 retries. Complaints — recipient hit "spam" — suppress immediately and forever. Re-engagement campaigns should target the engaged half of your list every 90 days; non-openers in 180+ days come off entirely. Every self-hosted platform exposes this; AcelleMail's per-list suppression model integrates with the bounce-handler webhook hooked up at step 4 above.

Engagement signals + IP reputation

Mailbox providers increasingly weight recipient engagement: opens, clicks, "not spam" gestures, replies. Sending the same message to your most-engaged 10% drives reputation up; sending to your dead 50% drags it down. Self-hosted means you have raw access to engagement data — segment campaigns to the engaged half, suppress the long-cold half, and watch the bounce + complaint rates. Tools to monitor: Google Postmaster Tools (free), Microsoft SNDS (free), the relay's own dashboard. Acelle's automation flows can branch on engagement-score custom fields, which is the cleanest place to encode the rule.

§9 · Compliance

GDPR, data residency, and the Schrems II question.

GDPR (EU 2016/679) treats subscriber email addresses + custom fields as personal data, with seven principles that bind the data controller (you) and the data processor (your hosting + sending vendors). The big practical implications:

  • Lawful basis. For marketing email, consent or legitimate interest. Both require a record (timestamp, IP, source) and an unsubscribe path. The List-Unsubscribe RFC 8058 one-click header is non-negotiable since Feb 2024 for Gmail/Yahoo bulk senders.
  • Data subject rights. Right of access (export their record), right to erasure (delete on request), right to portability. All three are SQL queries on a self-hosted setup; on SaaS they're vendor support tickets.
  • Data Processing Agreement (DPA). Your relationship with each processor needs a written agreement specifying retention, security measures, sub-processors. SaaS platforms publish theirs; self-hosted you have one (with the host) plus one (with the sending relay) — fewer parties, simpler audit trail.
  • International transfers (Schrems II). The 2020 Court of Justice decision invalidated Privacy Shield as the legal basis for EU→US personal data transfers, making cross-border SaaS storage a moving target. Self-hosted on EU infrastructure (Hetzner Falkenstein, OVH Strasbourg, AWS Frankfurt with EU-only configuration) sidesteps the question; the data never crosses a border.

Practical residency checklist:

  • VPS region matches your customers' jurisdiction (eu-west-1 / Frankfurt for EU, us-east-1 for US).
  • Sending relay region pinned (SES region selector — switching from us-east-1 to eu-west-1 is one config field).
  • Backups stored in the same region (S3 with a region-locked bucket, encrypted at rest).
  • Database backups, log retention, and tracking-pixel hosts all on the same continent as the application.
  • Sub-processors documented in your privacy policy (e.g. "We use AWS SES eu-west-1 for email delivery; data does not leave the EU").

For more on AcelleMail's security posture and the underlying audit-log + RBAC model, see /security. None of this constitutes legal advice — engage a privacy lawyer for the DPA review.

§10 · Honest trade-offs

When self-hosted is the wrong call.

Self-hosted is not strictly better than SaaS — it's better for specific shapes of team and use case, and worse for others. Three patterns where the SaaS option is the right answer:

Under 1,000 subscribers, no engineering on hand

A 500-contact list on Mailchimp Free costs $0/month. Self-hosted at that scale costs the same in dollars but adds an evening of setup and ongoing OS-patch maintenance. Below the 1K subscriber line, the SaaS free-tier is rational. Re-evaluate above 5K (when the SaaS pricing kicks in) or when you outgrow the free tier's feature ceiling.

No devops, no plans to acquire it

The application self-updates monthly. The OS needs patches. TLS certs renew. Queue workers crash and need restart. None of this is heavy lifting, but it requires someone who's comfortable with SSH and a runbook. If your team is marketers-only and you have no path to a contractor or a managed-Laravel service, the abstraction tax of SaaS is paying for someone else's on-call.

Regulated industry needing certified processors

HIPAA-regulated US healthcare, certain financial-services frameworks, government contractors — these sometimes require their email vendor to hold a specific certification (HITRUST, FedRAMP, SOC 2 Type II), with penalties for using non-certified processors. Some SaaS platforms have those certifications; self-hosted you're outsourcing certification to your hosting provider + sending relay, which works for AWS-backed deployments but adds audit overhead. Check first; pivot to SaaS if the cert requirement is binding.

The honest framing: self-hosted shifts the work, it doesn't eliminate it. If shifted-to-you is the wrong place for that work, SaaS is correct. For the much larger group where shifted-to-you means "shifted to your existing devops capacity," self-hosted compounds the longer you run it.

§11 · FAQ

Frequently asked questions.

Is self-hosted email marketing free?

The software can be free (Listmonk, Mautic) or one-time paid (AcelleMail $80, Sendy $59). The hosting and sending relay are paid: a $5–$20/month VPS plus Amazon SES at $0.10 per 1,000 sends. At 10,000 subscribers sending one campaign per week, total operating cost is roughly $9/month — versus $135/month on Mailchimp Standard. See §4.

Do I need to run my own SMTP server?

Almost never. The standard architecture pairs a self-hosted application (AcelleMail, Listmonk, Mautic) with a cloud sending relay (Amazon SES, Mailgun, SendGrid). The relay handles the SMTP transactions, IP reputation, and bounce feedback; you keep the list, the campaigns, and the analytics on your server. Running your own MTA (Postal, Postfix) only makes sense above ~10M sends/month or for specific regulatory requirements — see §5.

How long does setup take for a first-time installer?

A weekend including DNS propagation. The application install is 15–30 minutes (download, upload, configure DB credentials, run the installer). Setting up SES with verified identities is another 30 minutes plus 24h for AWS to flip your account out of sandbox mode. DNS records (SPF, DKIM, DMARC) are 10 minutes plus 0–48h for propagation. Sending the first test campaign is the next 15 minutes.

Will mailbox providers treat my self-hosted sends as spam?

Only if you treat your list poorly. SPF, DKIM, DMARC alignment plus low bounce rate (< 2%) and low complaint rate (< 0.1%) are the inputs Gmail/Outlook score on. A self-hosted setup behind a major sending relay (SES, SendGrid) inherits the relay's IP reputation; your job is keeping the From-domain reputation healthy through hygiene and engagement-targeted sends — see §8.

Can I migrate my Mailchimp list to a self-hosted platform?

Yes. Mailchimp Audience exports cover contacts, merge fields, tags, and campaign history as CSV. Most self-hosted platforms have a CSV importer that maps merge fields to custom fields. Plan a one-week parallel-run window: send through both providers to a cohort, compare deliverability, switch primary. Automation flows are rebuilt manually but typically take an afternoon for a five-step sequence.

Is self-hosted email marketing GDPR-compliant?

It can be — compliance is determined by how you operate, not the deployment model. Self-hosted makes some GDPR obligations easier (data subject rights are SQL queries; data residency is hosting region; sub-processors are countable on one hand). It doesn't remove your obligations as the data controller. See §9 for the residency checklist; consult a privacy lawyer for the DPA review.

What's the difference between AcelleMail, Listmonk, and Mautic?

Project shape. AcelleMail is multi-tenant SaaS-shaped (Customer + Plan model, plugin SDK, REST API, payment gateways) — fits resellers and SaaS founders. Listmonk is single-tenant newsletter-shaped (Go single binary, lean UI) — fits solo creators and high-volume newsletter teams. Mautic is automation-shaped (lead scoring, CRM bridges, drip flows) — fits B2B sales-driven teams. See the §6 platform table.

Can I send unlimited emails from a self-hosted setup?

"Unlimited" by the application — yes, the software has no contact or send caps. Bounded by your sending relay's published rate (SES is $0.10 per 1,000 sends, no cap; production-mode quotas start at 50K/24h and scale on request) and your queue worker throughput. For practical purposes, self-hosted has no platform-imposed ceiling — only the cost-per-send and the time it takes the queue to drain.

Does self-hosted include marketing automation and drip campaigns?

Yes on AcelleMail and Mautic — both ship visual flow builders with conditional branches, time delays, and event triggers. Listmonk is intentionally newsletter-only (campaign + transactional, no flow builder). Sendy has basic auto-responders. The AcelleMail automation page walks the flow surface in detail.

What happens if my server goes down during a campaign?

Campaign jobs sit in the queue (Redis or DB) and resume when the worker comes back online. SES holds your API quota until you make the call; you don't lose paid send credits. Practical mitigations: monitoring (Uptime Kuma, healthcheck.io) for the queue worker process; a database-backed queue (atomic, survives restarts) if you can't run Redis with persistence; one warm standby box for high-stakes lists. The blast radius of a 30-minute outage is "campaign delivery slips by 30 minutes," not "campaign lost."

Stop renting your subscriber list. Start owning it.

AcelleMail is a self-hosted email-marketing platform with multi-tenant billing, a documented plugin SDK, and built-in drivers for Amazon SES, Mailgun, SendGrid, SparkPost, and any generic SMTP. Standard licence $80 one-time. Lifetime updates. Try the live demo before you buy.

Try Live Demo