Changelog

Formato baseado em Keep a Changelog.

[0.3.0] - 2026-06-02

Adicionado

  • Validação de DNS embarcada: mxout check [dominio] (CLI) e GET /check / GET /check/{dominio} (HTTP, atrás do X-Auth-Token). Confere DKIM (chave publicada bate com a privada), SPF (IP do servidor autorizado) e DMARC (existe e bem-formado) de cada domínio remetente.
  • Campo opcional public_ip no mxout.json (usado pelo check para avaliar o SPF).

[0.2.2] - 2026-06-01

Corrigido

  • Chave pública DKIM publicada em SubjectPublicKeyInfo (SPKI), não PKCS#1 — corrige DKIM=FAIL em validadores estritos como o Gmail.

[0.2.1] - 2026-06-01

Adicionado

  • Subcomando mxout healthcheck (autoverificação HTTP) + HEALTHCHECK na imagem, para a imagem scratch ficar saudável sob o orquestrador (Runner honra o HC da imagem).

[0.2.0] - 2026-06-01

Adicionado

  • Ledger de eventos write-only em JSON no stdout (target mxout::ledger), correlacionado por message_id — mecanismo de controle e auditoria.
  • message_id próprio, gerado por requisição, presente no header Message-ID (assinado por DKIM), no ledger e na resposta HTTP.
  • Autenticação por MXOUT_AUTH_TOKEN (variável de ambiente), com comparação em tempo constante.
  • MXOUT_DNS para definir o resolver DNS explicitamente (útil em containers sem /etc/resolv.conf).
  • Limite de 5 MiB no corpo do POST /send.
  • Imagem Docker scratch (binário estático musl, ~6 MB, não-root).

Modificado

  • Token de autenticação saiu do mxout.json e passou para a variável de ambiente MXOUT_AUTH_TOKEN.
  • Dependências atualizadas (axum 0.8, hickory-resolver, rustls 0.23, mail-builder 0.4).

Corrigido

  • Date e Message-ID agora são sempre gerados antes da assinatura DKIM, garantindo headers estáveis e assinados.

[0.1.0] - 2026-06-01

Adicionado

  • Versão inicial: POST /send, assinatura DKIM RSA-SHA256 por domínio, resolução de MX, entrega SMTP com STARTTLS oportunístico e retry em memória.
By Borlot.com.br on 01/06/2026