Filtrado de Correos · 4 min read · Dec 29, 2025
Guía Rápida del Lenguaje SIEVE para Filtrado de Correos
Guía Rápida del Lenguaje SIEVE para Filtrado de Correos
¿Qué es SIEVE?
SIEVE es un lenguaje creado y utilizado para el filtrado de correos que amplía las opciones de filtrado generalmente proporcionadas por los servidores de correo o aplicaciones Antispam/Antivirus. Funcionan básicamente comparando diferentes claves utilizando diferentes comparadores y métodos de comparación, contra los encabezados de un mensaje de correo. Según el resultado de la comparación, puedes aplicar diferentes acciones al mensaje de correo correspondiente, es decir, rechazar, descartar, redirigir, etc.
Este lenguaje proporciona una metodología de filtrado extremadamente flexible, ya que los usuarios pueden definir cualquier número de filtros de script según sus necesidades. Diseñado para ser fácilmente implementado en un cliente de correo o servidor de correo (como Sendmail, Qmail, Axigen, etc.), el uso de scripts SIEVE no depende del protocolo de acceso, la arquitectura de correo y el sistema operativo.
SIEVE está diseñado como un estándar propuesto de Internet, como resultado de un esfuerzo de múltiples proveedores que ha sido discutido en varias reuniones públicas y privadas orientadas a estándares y técnicas desde al menos 1994
¿Por qué usar filtros SIEVE?
El tráfico de correo para la mayoría de los usuarios ha estado aumentando debido al uso creciente del correo electrónico, la aparición de correos electrónicos no solicitados como forma de publicidad y el aumento del uso de listas de correo.
Hay varias razones para usar el sistema de filtrado SIEVE:
- Puedes crear reglas eficientes y flexibles. Los scripts escritos en SIEVE se ejecutan durante la entrega final, cuando el mensaje se mueve a la bandeja de entrada accesible al usuario. Por lo tanto, es razonable clasificar cuando el MTA deposita el correo en la bandeja de entrada del usuario.
- Los scripts SIEVE son un método de filtrado seguro ya que no operan sobre el contenido del correo, sino que solo extraen información del encabezado del correo y toman acciones de acuerdo con las reglas predefinidas.
- Como adición a las aplicaciones Antispam y Antivirus, puedes usar scripts SIEVE para filtrar también todos los correos electrónicos legítimos, ganando así velocidad y eficiencia al usar la comunicación por correo electrónico.
El Lenguaje SIEVE
1. Aspectos generales
SIEVE tiene una forma fija descrita como un estándar, pero puede mejorarse utilizando extensiones. El mecanismo de extensión funciona si el sistema implementa esas extensiones. Para usar una extensión, debe ser anunciada al principio del archivo (script) con una cláusula require.
require "extension_name"
or
require ["extension_name1", "extension_name2"]La estructura de SIEVE como se describe en el estándar define 5 acciones: keep, fileinto, reject, discard, redirect que son autoexplicativas. También define 3 comandos de control:
- que detiene el procesamiento hasta ese punto estructura - comando require - que define una extensión del lenguaje.
La estructura if tiene la forma:
if
elsif
else
donde un bloque es un bloque de comandos (acciones y comandos de control - incluyendo otros ifs)
En la forma estándar, sin ninguna extensión, la prueba puede ser una de las siguientes:
- address - prueba un conjunto de los encabezados de dirección contra un conjunto de claves utilizando diferentes métodos de comparación;
- envelope - prueba opcional;
- header - prueba un conjunto de los encabezados contra un conjunto de claves utilizando diferentes métodos de comparación;
- true, false – constantes;
- allof
- lógica y entre varias pruebas; - anyof
- lógica o entre varias pruebas; - not
- negación de una prueba; - exists - prueba si existe un conjunto de encabezados;
- size - prueba contra el tamaño de un mensaje;
Una prueba puede tomar 2 valores: verdadero o falso.
2. Ejemplos
Un ejemplo simple de un script SIEVE que moverá todos los correos que tengan “Spam” en el asunto o sean recibidos de “[email protected]”, a la carpeta Spam puede escribirse de la siguiente manera:
require "fileinto"
if anyof(address :is ["From", "Sender"] "[email protected]", header :matches "Subject" "Spam")
{
fileinto "Spam";
}Otro ejemplo, más complejo, es un filtro que rechazará todos los correos que tengan un virus y sean correos salientes y no correos entrantes. Este último ejemplo utiliza varias extensiones que deben 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 correo es de domain.org al mundo y contiene un virus";
}Para una presentación más detallada del lenguaje SIEVE, también te aconsejamos leer el dedicado
RFC 3028 .
Filtros SIEVE en el Servidor de Correo AXIGEN
Actualmente, AXIGEN utiliza el lenguaje SIEVE para la definición de filtros de script. Diferentes scripts SIEVE definidos por el usuario pueden ser incluidos en cualquier Sistema de Filtrado AXIGEN. Cuando se activan en AXIGEN, a cada filtro se le asigna un valor de prioridad. La noción de prioridad se utiliza para definir el orden de los filtros en la cadena de filtrado. Esto significa que los filtros con mayor prioridad se aplicarán primero. Todos los filtros SIEVE pueden ser activados en múltiples niveles: servidor, dominio o cuenta/lista de correo.
AXIGEN también implementa la extensión de vacaciones SIEVE. Esto significa que se pueden crear y aplicar archivos de script SIEVE para generar respuestas automáticas tipo fuera de la oficina. Así, los mensajes generados automáticamente pueden ser enviados cuando el usuario de la cuenta para la que se aplican las vacaciones, está de vacaciones, fuera de la oficina o en general ausente por un período prolongado de tiempo. Aunque no es una función de seguridad, la extensión de vacaciones es una funcionalidad adicional disponible a través de archivos de script. Para una fácil implementación de fuera de la oficina en nuestro servidor de correo, consulta este ejemplo disponible en nuestra base de conocimientos:
Para instrucciones detalladas sobre la implementación del lenguaje SIEVE y scripts en AXIGEN, consulta nuestra
documentación en línea .
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.