7.2. File di configurazione

Questo è un file di configurazione abbastanza generico, può essere usato così com'è, perché le parti variabili (le regole di smistamento) sono contenute in altri file (elencati alla fine di questo) che vengono richiamati da questo principale:

=== file: .procmailrc ===

#directory
MAILDIR = $HOME/Mail   # ASSICURATI CHE ESISTA! Le email finiranno qui!
PMDIR = $MAILDIR/.Pm   # crea anche questa dir
PMSRC = $PMDIR
DUMMY=`test -d $MAILDIR || mkdir $MAILDIR`
DUMMY=`test -d $PMDIR || mkdir $PMDIR`
DUMMY=`test -d $MAILDIR/Sent || mkdir $MAILDIR/Sent`
DUMMY=`test -d $MAILDIR/Read || mkdir $MAILDIR/Read`

#varie
SHELL=/bin/sh
LINEBUF=8192
PATH=$HOME/bin:/bin:/usr/bin:/usr/local/bin
DEFAULT=$MAILDIR/IN.default   # mailbox di default per le email in entrata. Qui finiscono
# le email che non sono elaborate o smistate prima da qualche regola adatta.
# Se non definito, in generale le email finiscono in /var/spool/mail/nomeutente.
DUMMY=`test -f $DEFAULT || touch $DEFAULT` # crea lo spool principale se non esiste
FORMAIL=/usr/bin/formail    # path di formail, usato per processare alcune email
SENDMAIL=/usr/sbin/sendmail # path di sendmail

#log
VERBOSE = yes   # impostare a no dopo il debug
LOGABSTRACT = all   # produce log MOLTO estesi, impostare a no in seguito
LOGFILE = $PMDIR/pm.log   # file di log

# variabili utili (possono essere usate nelle regole per abbreviarne la scrittura,
# ad esempio come $NomeVariabile)
NL = "
" # nuova linea (un invio tra "")
WSPC = "    "   # blank: spazio + tab
SPC = "[$WSPC]"   # Regexp: spazio + tab
SPCL = "($SPC|$)"   # spazio o tab o nuova linea
NSPC = "[^$WSPC]"   # NON spazio o tab
s = $SPC   # abbreviazione: come in Perl \s
d = "[0-9]"   # una cifra -- Perl \d
w = "[0-9a-z_A-Z]"   # una parola alfanumerica -- Perl \w
W = "[^0-9a-z_A-Z]"   # NON una parola alfanumerica  -- Perl \W
a = "[a-zA-Z]"   # una parola, solo alfabetica

# imposta la variabile DATE come "mese_esteso-anno"
# attenzione, gli apici sono inversi, quindi ALT-GR piu' l'apice normale!
DATE = `date +%B-%Y`

#file .rc aggiuntivi
INCLUDERC = $PMDIR/general.rc
INCLUDERC = $PMDIR/lists.rc
INCLUDERC = $PMDIR/autoreply.rc
INCLUDERC = $PMDIR/friends.rc
INCLUDERC = $PMDIR/spam.rc      # attivate 1 solo di questi filtri antispam
#INCLUDERC = $PMDIR/spam2.rc
     

Per usare procmail, dovete istruire i programmi a richiamarlo. Per Fetchmail e Postfix potete trovare le istruzioni nelle relative sezioni del Quick&Easy Configuration HOWTO (si tratta di un rigo per parte), mentre per Sendmail, dovrete creare il file .forward nella vostra directory HOME (questo passo non è necessario se procmail è il gestore locale di default per lo smistamento, come nel caso di Redhat e distribuzioni derivate):

=== file: .forward ===

"| IFS=' ' && p=/usr/bin/procmail && test -f $p && exec $p -f- || exit 75 #mrshark"
     

Ricordatevi di sostituire a mrshark il vostro nome di login, e copiate esattamente come vedete, comprese virgolette e apici! In alcuni sistemi potrebbe essere richiesto che il file sia leggibile da tutti e la vostra directory HOME sia attraversabile. Date i comandi seguenti (quello relativo al .procmailrc serve a prevenire che il file venga ignorato dall'MTA, infatti se ha permessi 666 postfix lo ignora e invia la posta in /var/spool/mail/nomeutente):

cd
chmod 644 .forward
chmod 644 .procmailrc
chmod a+x .
     

Per controllare i file di log, potete usare lo script mailstat che viene fornito con procmail. Il suo uso è molto semplice, basta avviarlo fornendo come argomento il path del file di log (l'esempio seguente si riferisce alla configurazione impostata nel file .procmailrc precedente): mailstat $HOME/Mail/.Pm/pm.log

mailstat fornisce un rapporto sulle email arrivate e smistate a partire dalla volta precedente in cui è stato lanciato lo stesso mailstat: infatti esso dopo l'uso rinomina il file di log precedente con estensione .old e ne ricrea uno vuoto. Avete quindi anche un metodo per tenere entro dimensioni accettabili il file di log, richiamando mailstat! Comunque, dopo aver testato procmail, è utile ridurre i log, impostando VERBOSE=no e LOGABSTRACT=no in .procmailrc.