Elaborare i messaggi di posta con Procmail
Procmail e' un software che consente di analizzare i messaggi email ricevuti ed intraprendere delle azioni in base a regole definite dall'utente o globalmente. E' utile ad esempio per avviareun determinato programma alla ricezione di una particolare email, per spostare messaggi di posta in cartelle predefinite in base l'indirizzo del mittente, ad elaborare un servizio di mailing list, ecc.
Di seguito vengono illustrati i seguenti punti:
1- L'installazione;
2- Integrazione con l'mta Postfix;
3- Esempi di regole;
Iniziamo quindi dall'installazione.
1-
Per gli utenti che utilizzano Fedora e CentOS linux, bastera' eseguire questo
yum install procmail
In Debian ed Ubuntu linux si potra' utilizzare il packet manager apt
apt-get install procmail
Se desiderate compilare dal sorgente o non trovate un pacchetto precompilato, seguite pure questo esempio
wget ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-3.22.tar.gz
tar zxvf procmail-3.22.tar.gz
cd procmail-3.22
make
make install
2- Integrazione con l'mta Postfix
Configurare postfix per abilitare procmail e' davvero molto semplice, bastera' difatti inserire nella configurazione del servizio di posta (/etc/postfix/main.cf) la seguente riga
mailbox_command = /path/di/procmail
Ovviamente e' necessario cambiare /path/di/procmail con la locazione del procmail nel vostro sistema (in Debian Lenny /usr/bin/procmail)
Adesso bisogna eseguire questo comando per far rileggere a Postfix la sua configurazione
postfix reload
3- Esempi di regole
Le direttive per il filtraggio e l'elaborazione dei messaggi di posta da parte di procmail possono essere gestite sia globalmente (valido per tutti gli utenti di sistema) che individualmente (e' l'utente a configurare il 'proprio' procmail). Le regole 'globali' devono essere memorizzate in '/etc/procmailrc', quelle individuali nel file '.procmailrc' nella home dell'ultente. Se si utilizzano 'ricette' globali, e' necessario inserire in procmailrc l'istruzione DROPPRIVS=yes al fine di conservare il corretto proprietario dei messaggi analizzati.
N.B. Per verificare la locazione di questi file bastera' eseguire da shell 'man procmail', quindi cercare la parola procmailrc nella sezione FILES del manuale
Ecco qualche esempio:
Cestinare automaticamente i messaggi email provenienti dal dominio @spammer.it:
DROPPRIVS=yes
PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/sh#senza questo le email vanno in /var/spool/mail (caso in cui le mailbox fossero nel formato mbox)
DEFAULT=$HOME/Maildir/:0
* ^From.*@spammer.it
/dev/null
Fare un backup di tutte le email in ingresso
DROPPRIVS=yes
PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/sh#senza questo le email vanno in /var/spool/mail (caso in cui le mailbox fossero nel formato mbox)
DEFAULT=$HOME/Maildir/# backup di tutte le email in ingresso
:0c:
|gzip -9fc >> /path/del/backup.gz
Fare un forward delle email indirizzate a utente@sito1.it verso utente@sito2.it
DROPPRIVS=yes
PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/sh#senza questo le email vanno in /var/spool/mail (caso in cui le mailbox fossero nel formato mbox)
DEFAULT=$HOME/Maildir/
#se al posto di :0: si mette :0c: una copia dell'email viene recapitata anche a utente@sito1.it
:0:
* ^To.utente@sito1.it
! utente@sito2.it