Filtraggio Posta · 4 min read · Dec 29, 2025
Guida Rapida al Linguaggio SIEVE per il Filtro della Posta
Guida Rapida al Linguaggio SIEVE per il Filtro della Posta
Cos’è SIEVE?
SIEVE è un linguaggio creato e utilizzato per il filtro della posta che amplia le opzioni di filtraggio generalmente fornite dai server di posta o dalle applicazioni Antispam/Antivirus. Funzionano fondamentalmente confrontando diverse chiavi utilizzando diversi comparatori e metodi di confronto, contro le intestazioni di un messaggio di posta. In base al risultato del confronto, puoi applicare diverse azioni al corrispondente messaggio di posta, cioè rifiutare, scartare, reindirizzare, ecc.
Questo linguaggio fornisce una metodologia di filtraggio estremamente flessibile, poiché gli utenti possono definire un numero qualsiasi di filtri script in base alle loro esigenze. Progettato per essere facilmente implementato su un client di posta o su un server di posta (come Sendmail, Qmail, Axigen e così via), l’uso degli script SIEVE non dipende dal protocollo di accesso, dall’architettura della posta e dal sistema operativo.
SIEVE è progettato come uno standard Internet proposto, come risultato di uno sforzo multi-vendor che è stato discusso in vari incontri pubblici e privati orientati alla tecnologia e agli standard fin dal 1994
Perché Usare i Filtri SIEVE
Il traffico di posta per la maggior parte degli utenti è aumentato a causa dell’aumento dell’uso dell’e-mail, dell’emergere di e-mail indesiderate come forma di pubblicità e dell’aumento dell’uso delle liste di distribuzione.
Ci sono diverse ragioni per utilizzare il sistema di filtraggio SIEVE:
- Puoi creare regole efficienti e flessibili. Gli script scritti in SIEVE vengono eseguiti durante la consegna finale, quando il messaggio viene spostato nella casella di posta accessibile all’utente. Pertanto, è ragionevole ordinare quando il MTA deposita la posta nella casella di posta dell’utente.
- Gli script SIEVE sono un metodo di filtraggio sicuro poiché non operano sul contenuto della posta ma estraggono solo informazioni dall’intestazione della posta e prendono azioni secondo le regole predefinite.
- Come aggiunta alle applicazioni Antispam e Antivirus, puoi utilizzare gli script SIEVE per filtrare anche tutte le e-mail legittime, guadagnando così velocità ed efficienza nell’uso della comunicazione via e-mail.
Il Linguaggio SIEVE
1. Aspetti Generali
SIEVE ha una forma fissa descritta come uno standard ma può essere migliorato utilizzando estensioni. Il meccanismo di estensione funziona se il sistema implementa quelle estensioni. Per utilizzare un’estensione, deve essere pubblicizzata all’inizio del file (script) con una clausola require.
require "extension_name"
or
require ["extension_name1", "extension_name2"]La struttura di SIEVE come descritta nello standard definisce 5 azioni: keep, fileinto, reject, discard, redirect che sono autoesplicative. Definisce anche 3 comandi di controllo:
- che interrompe l’elaborazione fino a quel punto - struttura
- comando require - che definisce un’estensione del linguaggio.
La struttura if ha la forma:
if
elsif
else
dove un blocco è un blocco di comandi (azioni e comandi di controllo - inclusi altri if)
Nella forma standard, senza alcuna estensione, il test può essere uno dei seguenti:
- address - testa un insieme di intestazioni degli indirizzi contro un insieme di chiavi utilizzando diversi metodi di confronto;
- envelope - test opzionale;
- header - testa un insieme di intestazioni contro un insieme di chiavi utilizzando diversi metodi di confronto;
- true, false – costanti;
- allof
- logica e tra diversi test; - anyof
- logica o tra diversi test; - not
- negazione di un test; - exists - test se un insieme di intestazioni esiste;
- size - test contro la dimensione di un messaggio;
Un test può assumere 2 valori: true o false.
2. Esempi
Un semplice esempio di uno script SIEVE che sposterà tutte le mail che hanno “Spam” nell’oggetto o sono ricevute da “[email protected]”, nella cartella Spam può essere scritto come segue:
require "fileinto"
if anyof(address :is ["From", "Sender"] "[email protected]", header :matches "Subject" "Spam")
{
fileinto "Spam";
}Un altro esempio, più complesso, è un filtro che rifiuterà tutte le mail che hanno un virus e sono mail in uscita e non in arrivo. Quest’ultimo esempio utilizza diverse estensioni che devono essere implementate.
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 "Questa mail è da domain.org al mondo e contiene un virus";
}Per una presentazione più dettagliata del linguaggio SIEVE ti consigliamo anche di leggere il dedicato
RFC 3028
.
Filtri SIEVE nel Server di Posta AXIGEN
Attualmente, AXIGEN utilizza il linguaggio SIEVE per la definizione dei filtri script. Diversi script SIEVE definiti dall’utente possono essere inclusi in qualsiasi Sistema di Filtraggio AXIGEN. Quando attivato in AXIGEN, a ciascun filtro viene assegnato un valore di priorità. La nozione di priorità viene utilizzata per definire l’ordine dei filtri nella catena di filtraggio. Ciò significa che i filtri con priorità più alta verranno applicati per primi. Tutti i filtri SIEVE possono essere attivati a più livelli: server, dominio o account/lista di posta.
AXIGEN implementa anche l’estensione SIEVE per le vacanze. Ciò significa che i file di script SIEVE possono essere creati e applicati per generare risposte automatiche di tipo fuori ufficio. Pertanto, i messaggi generati automaticamente possono essere inviati quando l’utente dell’account per il quale si applica la vacanza è in vacanza, fuori ufficio o in generale assente per un periodo prolungato. Anche se non è una funzione di sicurezza, l’estensione per le vacanze è una funzionalità extra disponibile tramite file di script. Per una facile implementazione fuori ufficio nel nostro server di posta, si prega di vedere questo esempio disponibile nel nostro Knowledgebase:
Per istruzioni dettagliate sull’implementazione del linguaggio SIEVE e degli script in AXIGEN, si prega di consultare la nostra
documentazione online .
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.