Posta elettronica: messaggio di risposta automatico con Procmail e Formail e Regular Expressions
Se il nostro sistema di posta è basato su Linux, è possibile utilizzare procmail , formail e le regular expressions per impostare messaggi di risposta automatici (AUTOREPLY).
Prendiamo in considerazione un sistema basato su Fedora e Sendmail e supponiamo che un nostro utente voglia impostare una risposta automatica che avvisa chi gli scrive di essere assente per ferie. Di seguito riportiamo il file .procmailrc da utilizzare come template e copiare nella home directory del nostro utente. Perché il sistema funzioni è necessario che l'utente sia abilitato all'uso di una shell (es: /bin/sh).
# .procmailrc Template
# Definizione delle VARIABILI utilizzate nello script
SHELL = /bin/sh
#Note: On some systems -xSubject: has to be -x"Subject: "
SUBJ_=`formail -c -xSubject: \
| sed -e 's/^[ ]*//g' -e 's/[ ]*$//g'`
#MAILDIR=$HOME #default
#LOGFILE=$HOME/procmail.log #da utilizzare in caso di errore
:0
# Controlliamo se il messaggio è indirizzato all'utente
* ^TO_utente@tecnes.com
# Ignore messages for daemons
* ! ^FROM_DAEMON
# Avoid email loops
* ! ^X-Loop: utente@tecnes.com
{
:0 Whc:dejatold.lock # controlla la presenza del mittente nella cache
| formail -rD 8192 $HOME/dejatold.cache
:0 ehc # se il mittente non viene trovato nella cache
| (formail -r \
-A"X-Loop: utente@tecnes.com" \
-I"Subject: Out of Office Reply: $SUBJ_" ; \
echo "Sarò assente dal 15/08/2007 al 31/08/2007." ; \
echo "" ; \
echo "Per urgenze potete far riferimento al collega Pippo" ; \
echo " pippo@tecnes.com" ; \
echo "" ; \
echo "testprocmail" ; \
echo "" ; \
echo "Tecnes Milano Srl" ; \
echo "Via Schiaparelli, 2" ; \
echo "20125 - Milano" ; \
echo "tel. +39 02 67101036" ) \
| /usr/lib/sendmail -oi -t
}
NOTE su formail
"formail -rD 8196 nomefile" controlla la presenza del sender all'interno del file
"formail -r" prepara un messaggio di risposta