Editor Sieve bruto para filtros avançados de e-mail
Use o editor Sieve bruto para controlar no servidor filtros, encaminhamentos, sinalizadores e respostas automáticas.
Detalhes do artigo
Tipo, dificuldade, planos e data da última atualização.
▼
Detalhes do artigo
Tipo, dificuldade, planos e data da última atualização.
- Tipo
- Referência
- Dificuldade
- Avançado
- Planos
- Agency
- Última atualização
- 9 de set de 2026
A maioria das pessoas nunca precisará desta página. O construtor visual do TrekMail atende a quase todas as necessidades e é mais fácil de usar. Mas, para desenvolvedores, administradores de TI que cuidam de dezenas de caixas ou usuários avançados que chegaram aos limites do construtor, o editor Sieve bruto oferece controle total sobre o processamento das mensagens recebidas.
É preciso ter um plano Agency ativo para habilitar um script bruto. Outros planos podem salvar um rascunho no editor, mas ele não será executado.
O que é Sieve?
Sieve é uma pequena linguagem de scripts para filtrar e-mails. Suas instruções são executadas quando uma nova mensagem chega. Uma regra pode verificar remetente, assunto, tamanho ou cabeçalhos e depois mover, encaminhar, sinalizar, rejeitar ou enviar uma resposta automática.
A principal vantagem em relação às regras do Outlook ou Apple Mail é que Sieve funciona no servidor, 24 horas por dia, mesmo com o computador desligado ou o aplicativo de e-mail fechado. Todos os dispositivos conectados à caixa veem o mesmo resultado.
Você não precisa aprender Sieve para usar bem o TrekMail. O construtor visual escreve o script nos bastidores. O editor bruto só permite escrevê-lo diretamente quando o construtor não atende ao que você precisa.
Quando usar Sieve bruto ou filtros visuais
Use o construtor visual quando:
- Precisar de condições diretas como "remetente contém X" ou "assunto contém Y".
- Quiser mover, encaminhar, sinalizar, rejeitar ou descartar mensagens.
- Não se sentir à vontade escrevendo código.
- Quiser fazer mudanças rápidas sem se preocupar com sintaxe.
Use o editor Sieve bruto quando:
- Precisar de lógica complexa, como "se isto E aquilo, mas NÃO o outro".
- Quiser usar expressões regulares para padrões, como números de pedido em um formato específico.
- Precisar combinar resposta de férias, filtragem e encaminhamento em um script.
- Precisar de uma lógica que as condições e ações visuais não representam.
- Administrar modelos copiados para muitas caixas postais.
Onde encontrar
- Abra o painel do TrekMail e acesse Caixas postais.
- Escolha Gerenciar ao lado da caixa desejada.
- Abra a aba Sieve.
- O editor de código aparecerá. Em uma conta Agency qualificada, ele começa com o script gerado pelos filtros gerenciados existentes. Edite-o ou escreva outro do zero.
- Clique em Salvar e ativar para enviar e aplicar o script.
O editor abre o script atual ou uma área vazia, caso ainda não exista um. Escreva ou cole o código e clique em Salvar e ativar.
Extensões compatíveis
Sieve é modular. A linguagem básica é simples, e as extensões acrescentam recursos. O TrekMail aceita:
| Extensão | O que faz |
|---|---|
fileinto |
Move uma mensagem para uma pasta específica. Sem ela, Sieve só pode manter mensagens na caixa de entrada ou descartá-las. |
reject |
Devolve a mensagem ao remetente com um erro personalizado, deixando claro que ela não foi entregue. |
vacation |
Envia uma resposta automática de ausência e limita internamente a frequência por remetente. |
copy |
Encaminha a mensagem a outro endereço e mantém uma cópia na sua caixa. Sem ela, o encaminhamento remove a mensagem. |
body |
Permite verificar o conteúdo da mensagem, não apenas os cabeçalhos. Útil para palavras-chave no texto. |
imap4flags |
Define indicadores como lida, sinalizada ou importante, visíveis no programa de e-mail. |
variables |
Armazena partes de uma correspondência para reutilização posterior, facilitando lógica avançada e evitando repetição. |
relational |
Acrescenta comparações numéricas como maior e menor, úteis para tamanho e valores numéricos de cabeçalhos. |
regex |
Permite expressões regulares, muito mais poderosas que uma simples busca por "contém". |
Declare cada extensão no início do script com require. Antes da ativação, o servidor valida o script e rejeita extensões incompatíveis ou sensíveis à segurança.
Exemplos de scripts
Veja quatro scripts completos e comentados que você pode adaptar.
Exemplo 1: encaminhamento condicional complexo
Encaminha e-mails de um cliente específico que mencionem "proposal" no assunto e tenham menos de 5 MB. Também os arquiva na pasta do projeto e os sinaliza.
require ["fileinto", "copy", "imap4flags", "relational", "comparator-i;ascii-numeric"];
# Forward proposal emails from client, but only if they are under 5MB
if allof (
address :contains "from" "@bigclient.com",
header :contains "subject" "proposal",
size :under 5M
) {
# Send a copy to the project manager
redirect :copy "pm@youragency.com";
# Flag it for follow-up
addflag "\\Flagged";
# File it in the client folder
fileinto "Clients/BigClient/Proposals";
# Stop processing further rules
stop;
}
# Everything else from this client goes to their general folder
if address :contains "from" "@bigclient.com" {
fileinto "Clients/BigClient";
stop;
}
O que faz: a primeira regra corresponde apenas a propostas desse cliente com menos de 5 MB e as encaminha, sinaliza e arquiva. A segunda recebe todo o restante do cliente e o arquiva na pasta geral.
Exemplo 2: expressão regular para números de pedido
Encontra mensagens com números como ORD-12345 ou ORD-98765 e as arquiva automaticamente.
require ["fileinto", "regex"];
# Match order confirmation emails with order numbers like ORD-#####
if header :regex "subject" "ORD-[0-9]{4,6}" {
fileinto "Orders";
stop;
}
# Match support ticket numbers like TICKET-####
if header :regex "subject" "TICKET-[0-9]{3,}" {
fileinto "Support Tickets";
stop;
}
O que faz: expressões regulares comparam padrões. [0-9]{4,6} significa "entre 4 e 6 dígitos" e encontra ORD-1234, ORD-12345 e ORD-123456 sem listar todos os números.
Exemplo 3: férias, arquivamento e encaminhamento combinados
Um script que responde durante a ausência, encaminha mensagens urgentes a uma colega e arquiva o restante por categoria.
require ["fileinto", "vacation", "copy", "imap4flags"];
# Auto-reply to everyone (once per 3 days per sender)
vacation :days 3 :subject "Out of office until April 15"
"Thanks for your email. I am out of the office until April 15
with limited access to email. For urgent matters, please contact
Sarah at sarah@youragency.com. I will reply when I return.";
# Forward urgent emails to Sarah immediately
if header :contains "subject" "urgent" {
redirect :copy "sarah@youragency.com";
addflag "\\Flagged";
}
# File invoices
if header :contains "subject" "invoice" {
fileinto "Invoices";
stop;
}
# File newsletters
if address :contains "from" "newsletter" {
fileinto "Newsletters";
stop;
}
O que faz: vacation responde a toda mensagem, no máximo uma vez a cada 3 dias por remetente. Depois, as demais regras organizam o e-mail. Como vacation não usa stop, o script continua e combina o autoatendimento com outros filtros.
Exemplo 4: sinalização por cabeçalho personalizado
Alguns sistemas acrescentam cabeçalhos como X-Priority para indicar importância. Este script lê esse cabeçalho e sinaliza mensagens prioritárias.
require ["imap4flags", "fileinto", "relational", "comparator-i;ascii-numeric"];
# X-Priority: 1 = highest, 5 = lowest
# Flag messages marked as high priority by the sending server
if header :value "le" :comparator "i;ascii-numeric"
"X-Priority" "2" {
addflag "\\Flagged";
}
# File low-priority messages (4 or 5) into a "Low Priority" folder
if header :value "ge" :comparator "i;ascii-numeric"
"X-Priority" "4" {
fileinto "Low Priority";
stop;
}
O que faz: em X-Priority, 1 é a prioridade máxima e 5 a mínima. :value "le" significa "menor ou igual", portanto sinaliza prioridades 1 e 2. As prioridades 4 e 5 saem da caixa de entrada.
Observações importantes
Scripts brutos substituem filtros visuais. Ao salvar um script Sieve bruto, você substitui os filtros visuais daquela caixa. Eles permanecem salvos, mas inativos. Para voltar, clique em Redefinir para o padrão no topo da aba Sieve.
O servidor valida antes de ativar. Ao clicar em Salvar e ativar, o servidor procura erros de sintaxe. Se houver algum, mostra o erro e não ativa o script. O script anterior ou os filtros visuais continuam valendo até a correção.
A instrução require é obrigatória. Toda extensão usada deve aparecer em require no início. Se usar fileinto e vacation sem declará-las, o servidor rejeitará o script. Em caso de dúvida, inclua tudo o que possa precisar.
O spam é filtrado antes do script. O filtro antispam do TrekMail age no servidor antes de Sieve. Seu script só recebe mensagens aprovadas, portanto não precisa de regras antispam.
Como voltar aos filtros visuais
Para deixar o script bruto e retornar ao construtor:
- Abra a aba Sieve da caixa.
- Clique em Redefinir para o padrão no canto superior direito.
- Confirme quando solicitado.
Isso descarta o script personalizado e restaura o script gerado pelos filtros visuais. Esses filtros ficam preservados enquanto o bruto está ativo; a redefinição apenas os reativa.
Salvar uma mudança na aba Filtros também devolve a caixa ao script gerenciado. A aba Resposta automática não substitui um script bruto; primeiro retorne ao modo gerenciado e depois configure a resposta.
Erros comuns e soluções
Esquecer require. Toda extensão deve ser declarada. Se aparecer "unknown command fileinto", adicione require ["fileinto"]; no início.
Faltar ponto e vírgula. Todo comando Sieve termina com ponto e vírgula. Diante de tokens inesperados, confira especialmente stop, discard e fileinto.
Strings sem aspas. Nomes de pastas, endereços e valores precisam de aspas duplas. fileinto Newsletters; falha; fileinto "Newsletters"; está correto.
Barra invertida nos indicadores. Indicadores IMAP como \Flagged e \Seen exigem duas barras no Sieve: "\\Flagged" e "\\Seen". Uma única barra é um caractere de escape e causa erros.
A pasta não existe. Crie-a no programa de e-mail antes de encaminhar mensagens. Um script bruto não cria pastas ausentes automaticamente, salvo se o script e o servidor aceitarem esse comportamento.
Script grande demais. Existe um limite prático. Se passar de algumas centenas de linhas, avalie se parte das regras pode ir para o construtor visual. Nem tudo precisa ficar em um único script.
Artigos relacionados
Vá para guias próximos que dão continuidade ao fluxo de trabalho.