Seus emails corporativos merecem um papel de carta de verdade 💌
O Papéli é um Milter Postfix escrito em Rust puro que intercepta emails de saída (portas 587 e 465) e os envelopa automaticamente em papel de carta responsivo com assinatura dupla inteligente — tudo antes do OpenDKIM.
587 / 465
Milter
Remove MSO/Word
Templates
Dupla
Transparente para o remetente. Sem alteração de cabeçalhos DKIM. Bypass automático para domínios não gerenciados.
✨ Antes & Depois
<div class="WordSection1">
<p class="MsoNormal">Oi João,</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Segue o relatório.</p>
<!--[if !supportAnnotations]-->
<div class="MsoNormal">
<b>Carlos Silva</b><br>
Diretor | ACME Corp<br>
+55 11 99999-9999<br>
<span class="MsoNormal">
Esta mensagem é confidencial...
(8 linhas de disclaimer)
</span>
</div>
</div>
Enviado do meu iPhone
Oi João,
Segue o relatório.
Diretor de Tecnologia · ACME Corp
+55 11 99999-9999
Esta mensagem contém informações confidenciais.
✅ HTML limpo · ✅ DKIM intacto · ✅ Responsivo
Funcionalidades
O que o Papéli faz de especial pela sua correspondência
Anexos Intactos
Preservação bit-a-bit de todos os anexos e imagens CID inline. SHA-256 verificado em cada mensagem.
Sanitização Cirúrgica
Remove lixo MSO/Word (WordSection1, MsoNormal), VML, condicionais IE e rodapés de celular.
Assinatura Dupla Inteligente
Assinatura longa no primeiro envio. Nas threads, colapsa para versão compacta — economizando até 70% dos bytes.
Templates MJML
Papel de carta responsivo compilado via MRML puro (Rust). Templates Jinja2 com variáveis por remetente.
Config Hierárquica
Resolução em 3 camadas: remetente específico → domínio → padrão global. Hot-reload sem reiniciar serviço.
Rust Puro & Seguro
Zero dependências de C no critical path. Socket UNIX ou TCP. Bypass automático para domínios não gerenciados.
DKIM Transparente
Atua antes do OpenDKIM. Assinatura criptográfica sempre válida. Sem quebra de SPF/DMARC.
Suite de Testes Rigorosa
30+ testes automatizados cobrindo MIME complexo, todos os clientes de email, tipos de conteúdo e edge cases.
Assinatura Dupla Inteligente
O problema do inchaço de assinaturas em threads longas, resolvido de forma determinística
Em um ambiente corporativo, uma thread com 5 respostas pode ter o mesmo bloco de assinatura repetido 5 vezes — logos, disclaimers, telefones. O Papéli resolve isso com marcadores semânticos rastreáveis, colapsando assinaturas históricas automaticamente.
✍️ Assinatura Longa (mensagem atual)
Diretor de Tecnologia | ACME Corp
Tel: +55 11 99999-9999
www.acme.com
Esta mensagem contém informações confidenciais...
📌 Assinatura Curta (histórico citado)
✅ Economiza até 70% dos bytes em threads longas
data-papeli="signature" e delimitadores
em texto puro (<!--papeli:sig:start:long-->) para identificar e colapsar
assinaturas antigas com precisão determinística.
Início Rápido
1. Compilar e instalar
git clone https://codeberg.org/lumenpink/papeli
cd papeli
cargo build --release
sudo cp target/release/papeli /usr/local/bin/papeli
2. Configurar o Postfix
Adicione o Papéli como milter exclusivamente nas portas de submission (master.cf):
submission inet n - y - - smtpd
-o smtpd_milters=unix:/run/papeli/papeli.sock,inet:localhost:8891
-o milter_default_action=accept
3. Criar o arquivo de configuração
sudo mkdir -p /etc/papeli/templates
sudo cp deploy/papeli.example.toml /etc/papeli/papeli.toml
# Edite /etc/papeli/papeli.toml com suas configurações
4. Iniciar o serviço
sudo cp deploy/papeli.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now papeli
sudo postfix reload