Action disabled: media
doc:appunti:prog:esempi_procmail
Esempi regole procmail
Con questa regola alcuni messaggi vengono processati per estrarre un allegato e salvarlo su disco.
#-------------------------------------------------------------------------
# $HOME/.procmailrc
#
# When specifying a destination directory, append a trailing "/"
# to save in Maildir format.
#
# When saving messages into a file (mbox or Maildir), we want to use
# a lock file. So each rule begin with a line with a trailing ":".
#-------------------------------------------------------------------------
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
UMASK=007
# Use user's Maildir instead of /var/mail/.
MAILDIR=$HOME/Maildir/
ORGMAIL=$MAILDIR
DEFAULT=$MAILDIR
#LOGFILE=$HOME/procmail.log
#VERBOSE=yes
#-----------------------------------------------------------------------
# Estrae l'attach MIME dalla posta che proviene da un determinato
# indirizzo e con un determinato Subject.
# Un eventuale file esistente viene sovrascritto.
#
# Durante l'esecuzione del comando viene creato un file di lock
# (config.lock) nella home directory dell'utente, il flag "w"
# indica di attendere che il comando sia completato prima di
# procedere.
#
# In questo modo viene processata una sola mail per volta e si
# dovrebbero evitare vari problemi riscontrati. In alcuni casi
# allegati differenti vengono salvati nello stesso file che
# quindi risulta corrotto (pare che munpack crei file temporanei
# in modo non sicuro). In altri casi il messaggio pare non
# passare per la regola procmail e viene recapitato nella
# mailbox.
#-----------------------------------------------------------------------
FOLDER=/home/backup/config
DEBUG=/var/log/backup_procmail.log
:0 w : config.lock
* ^From:.*root
* ^Subject:.*Host config$
| echo -n "$(date "+%Y-%m-%d %H:%M:%S") " >> "${DEBUG}" ; /usr/bin/munpack -f -C "${FOLDER}" >> "${DEBUG}"
#-------------------------------------------------------------------------
# Filter the mail with ClamAV
#-------------------------------------------------------------------------
:0 fw
| /usr/bin/sanitizer /etc/sanitizer.cfg
#-------------------------------------------------------------------------
# Filter the mail with SpamAssassin
#-------------------------------------------------------------------------
:0 fw
* < 256000
| /usr/bin/spamc
#-------------------------------------------------------------------------
# Messages marked by Spamassassin.
#-------------------------------------------------------------------------
:0 :
* ^X-Spam-Flag: YES
.Spam/
Espressioni regolari
Le espressioni regolari che si possono usare per selezionare i messaggi possono contenere caratteri speciali:
| ^ | Inizio stringa. |
|---|---|
| $ | Fine stringa. |
| . | Il punto corrisponde a un carattere qualsiasi, eccetto un newline. |
Questi sono i modificatori standard:
| * | Zero o più occorrenze. |
|---|---|
| + | Una o più occorrenza. |
| ? | Zero o una occorrenza. |
Si possono definire degli atom raggruppando dei caratteri in partentesi tonde () e definire dei branch (condizioni alternative) separandoli con il carattere | (pipe).
Nell'esempio che segue la regola include tutti i messaggi generati da cron da tre host diversi, che contengono anche la parola backup nell'oggetto:
:0: * ^Subject: Cron <root@((totem)|(nagila)|(manitu))>.*backup .Admin.Backup/
doc/appunti/prog/esempi_procmail.txt · Last modified: by niccolo
