====== 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 .*backup .Admin.Backup/