Changelog
Formato baseado em Keep a Changelog.
[0.3.0] - 2026-06-02
Adicionado
- Validação de DNS embarcada:
mxout check [dominio](CLI) eGET /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_ipnomxout.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) +HEALTHCHECKna imagem, para a imagemscratchficar 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 pormessage_id— mecanismo de controle e auditoria. message_idpróprio, gerado por requisição, presente no headerMessage-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_DNSpara 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.jsone passou para a variável de ambienteMXOUT_AUTH_TOKEN. - Dependências atualizadas (axum 0.8, hickory-resolver, rustls 0.23, mail-builder 0.4).
Corrigido
DateeMessage-IDagora 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