Filtragem de E-mails · 4 min read · Dec 29, 2025

Guia Rápido da Linguagem SIEVE para Filtragem de E-mails

Guia Rápido da Linguagem SIEVE para Filtragem de E-mails

O que é SIEVE?

SIEVE é uma linguagem criada e usada para filtragem de e-mails que amplia as opções de filtragem geralmente fornecidas por servidores de e-mail ou aplicações Antispam/Antivírus. Elas funcionam basicamente comparando diferentes chaves usando diferentes comparadores e métodos de comparação, contra cabeçalhos de uma mensagem de e-mail. Com base no resultado da comparação, você pode aplicar diferentes ações à mensagem de e-mail correspondente, ou seja, rejeitar, descartar, redirecionar, etc.

Esta linguagem fornece uma metodologia de filtragem extremamente flexível, pois os usuários podem definir qualquer número de filtros de script de acordo com suas necessidades. Projetada para ser facilmente implementada em um cliente de e-mail ou servidor de e-mail (como Sendmail, Qmail, Axigen e assim por diante), o uso de scripts SIEVE não depende de protocolo de acesso, arquitetura de e-mail e sistema operacional.

SIEVE é projetada como um Padrão da Internet proposto, como resultado de um esforço de múltiplos fornecedores que tem sido discutido em várias reuniões públicas e privadas voltadas para questões técnicas e de padrões desde pelo menos 1994


Por que usar filtros SIEVE

O tráfego de e-mail para a maioria dos usuários tem aumentado devido ao uso crescente de e-mails, ao surgimento de e-mails não solicitados como uma forma de publicidade e ao aumento do uso de listas de e-mails.

Existem várias razões para usar o sistema de filtragem SIEVE:

  • Você pode criar regras eficientes e flexíveis. Scripts escritos em SIEVE são executados durante a entrega final, quando a mensagem é movida para a caixa de correio acessível ao usuário. Portanto, é razoável classificar quando o MTA deposita e-mails na caixa de correio do usuário.
  • Scripts SIEVE são um método de filtragem seguro, pois não operam no conteúdo do e-mail, mas apenas extraem informações do cabeçalho do e-mail e tomam ações de acordo com as regras pré-definidas.
  • Como um complemento a aplicações Antispam e Antivírus, você pode usar scripts SIEVE para também filtrar todos os e-mails legítimos, ganhando assim velocidade e eficiência ao usar a comunicação por e-mail.

A Linguagem SIEVE

1. Aspectos gerais

SIEVE tem uma forma fixa descrita como um padrão, mas pode ser aprimorada usando extensões. O mecanismo de extensão funciona se o sistema implementar essas extensões. Para usar uma extensão, ela deve ser anunciada no início do arquivo (script) com uma cláusula require.

require "extension_name"    
or    
require ["extension_name1", "extension_name2"]

A estrutura de SIEVE, conforme descrita no padrão, define 5 ações: keep, fileinto, reject, discard, redirect, que são autoexplicativas. Também define 3 comandos de controle:

  • - que interrompe o processamento até aquele ponto
  • estrutura
  • comando require - que define uma extensão da linguagem.

A estrutura if tem a forma:

if

elsif

else

onde um bloco é um bloco de comandos (ações e comandos de controle - incluindo outros ifs)

Na forma padrão, sem nenhuma extensão, o teste pode ser um dos seguintes:

  • address - testa um conjunto dos cabeçalhos de endereço contra um conjunto de chaves usando diferentes métodos de comparação;
  • envelope - teste opcional;
  • header - testa um conjunto dos cabeçalhos contra um conjunto de chaves usando diferentes métodos de comparação;
  • true, false – constantes;
  • allof - lógica e entre vários testes;
  • anyof - lógica ou entre vários testes;
  • not - negação de um teste;
  • exists - teste se um conjunto de cabeçalhos existe;
  • size - teste contra o tamanho de uma mensagem;

Um teste pode ter 2 valores: true ou false.

2. Exemplos

Um exemplo simples de um script SIEVE que moverá todos os e-mails que têm “Spam” no assunto ou são recebidos de “[email protected]”, para a pasta Spam pode ser escrito da seguinte forma:

require "fileinto"  
      
if anyof(address :is ["From", "Sender"] "[email protected]", header :matches "Subject" "Spam")  
{  
    fileinto "Spam";  
}

Outro exemplo, mais complexo, é um filtro que rejeitará todos os e-mails que têm um vírus e são e-mails de saída e não e-mails de entrada. Este último exemplo usa várias extensões que precisam ser implementadas.

require ["envelope","virustest","relational","comparator-i;ascii-numeric","reject"];  
  
if allof(virustest :value "eq" :comparator "i;ascii-numeric" "5",  
    envelope :contains "From" ["domain1.org", "domain2.org"],  
    not envelope :contains "To" ["domain1.org", "domain2.org"])  {  
        reject "Este e-mail é de domain.org para o mundo e contém um vírus";  
    }

Para uma apresentação mais detalhada da linguagem SIEVE, também aconselhamos a leitura do dedicado

RFC 3028

.

Filtros SIEVE no Servidor de E-mail AXIGEN

Atualmente, o AXIGEN usa a linguagem SIEVE para definição de filtros de script. Diferentes scripts SIEVE definidos pelo usuário podem ser incluídos em qualquer Sistema de Filtragem AXIGEN. Quando ativado no AXIGEN, cada filtro recebe um valor de prioridade. A noção de prioridade é usada para definir a ordem dos filtros na cadeia de filtragem. Isso significa que filtros com maior prioridade serão aplicados primeiro. Todos os filtros SIEVE podem ser ativados em múltiplos níveis: servidor, domínio ou conta/lista de e-mails.

O AXIGEN também implementa a extensão de férias SIEVE. Isso significa que arquivos de script SIEVE podem ser criados e aplicados para gerar respostas automáticas do tipo fora do escritório. Assim, mensagens geradas automaticamente podem ser enviadas quando o usuário da conta para a qual as férias se aplicam, está de férias, fora do escritório ou, em geral, ausente por um período prolongado. Embora não seja uma função de segurança, a extensão de férias é uma funcionalidade extra disponível via arquivos de script. Para uma implementação fácil de fora do escritório em nosso servidor de e-mail, consulte este exemplo disponível em nossa Base de Conhecimento:

Para instruções detalhadas sobre a linguagem SIEVE e implementação de scripts no AXIGEN, consulte nossa

documentação online .

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.