Configuração

O mxout lê a configuração de um arquivo JSON e de variáveis de ambiente. Segredos (token de auth) e chaves DKIM nunca ficam embutidos no binário — chegam via variável de ambiente e arquivos montados externamente.

Arquivo de configuração (mxout.json)

O caminho do arquivo é definido pela variável MXOUT_CONFIG. O valor padrão é mxout.json no diretório de trabalho. Em container, o caminho convencional é /etc/mxout/mxout.json.

Campos

Campo Tipo Padrão Descrição
listen string "0.0.0.0:8080" Endereço e porta em que a API HTTP escuta.
helo_hostname string Hostname enviado no EHLO/HELO SMTP. Deve coincidir com o PTR/rDNS do IP de saída.
smtp_timeout_secs int 30 Timeout em segundos por etapa do diálogo SMTP.
domains objeto Mapa de domínio para configuração DKIM. Veja estrutura abaixo.

Estrutura de `domains`

Cada chave do objeto domains é o domínio do remetente (deve corresponder ao domínio do campo from no /send).

Campo Tipo Descrição
selector string Seletor DKIM publicado no DNS (ex.: "mail").
key_path string Caminho absoluto para a chave privada DKIM em formato PEM.

Exemplo completo

{
  "listen": "0.0.0.0:8080",
  "helo_hostname": "mail.exemplo.com",
  "smtp_timeout_secs": 30,
  "domains": {
    "exemplo.com": {
      "selector": "mail",
      "key_path": "/etc/mxout/keys/exemplo.com.pem"
    },
    "outro-dominio.com": {
      "selector": "mxout",
      "key_path": "/etc/mxout/keys/outro-dominio.com.pem"
    }
  }
}

O token de autenticação não fica neste arquivo. Ele é definido exclusivamente pela variável de ambiente MXOUT_AUTH_TOKEN.

Variáveis de ambiente

Variável Descrição Padrão Exemplo
MXOUT_CONFIG Caminho para o arquivo mxout.json. mxout.json /etc/mxout/mxout.json
MXOUT_AUTH_TOKEN Token de autenticação para o endpoint /send. Ausente ou vazio = sem auth (registra aviso no boot). — (sem auth) s3cr3t-t0ken-aqui
MXOUT_DNS IP do resolver DNS upstream para resolução de MX. Necessário em containers scratch sem /etc/resolv.conf. Resolver do sistema 1.1.1.1
RUST_LOG Nível de log do serviço. info debug

Sobre `MXOUT_AUTH_TOKEN`

Se a variável estiver ausente ou vazia, o endpoint /send fica acessível sem autenticação. O mxout registra um aviso visível nos logs na inicialização. Use somente em rede privada com controle de acesso na camada de rede.

Sobre `MXOUT_DNS`

Imagens baseadas em scratch não possuem /etc/resolv.conf. Sem MXOUT_DNS, o mxout não consegue resolver registros MX. Defina esta variável sempre que rodar o container a partir de uma imagem mínima.

Chaves DKIM

As chaves privadas DKIM são arquivos PEM referenciados por key_path no mxout.json. Elas devem ser montadas no container como volumes somente-leitura. Nunca inclua chaves privadas em imagens Docker ou repositórios.

Para gerar um par de chaves, consulte mxout-keygen.

Para publicar o registro DNS correspondente, consulte Configurar DNS.

By Borlot.com.br on 01/06/2026