Le fichier de configuration: ~/.procmailrc
Variables d'environement
Au début de votre fichier .procmailrc, vous allez pouvoir définir différentes variables
Les principales sont:
- LOGNAME, HOME, SHELL Ce sont les variables habituelles
qui sont celle par défaut si vous ne spécfier pas autre chose.
- ORGMAIL Par defaut, votre boite dans /var/spool/mail
Le courrier est envoyé dans cette boite si il n'a pas pu être écrit ailleur (plus de place sur le disque , ...) En cas d'echec, il est retourné a l'envoyeur.
- PATH Cette variable est prédefinie avec comme valeur $HOME/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11/bin
- SENDMAIL et SENDMAILFLAGS Ils servent a definir la commande a utiliser lorsqu'un mail est suivit vers un utilisateur (action: ! user )
- HOST Votre nom d'hote (prédefini)
- DEFAUT La boite ou le courrier ne correspondant à aucun filtre est envoyé, par defaut, c'est ORGMAIL
- MAILDIR Par défaut $HOME, cette variable permet de dire a procmail de placer les boîtes pour lesquelles le chemin d'acces n'est pas absolu dans ce repertoire. Par exemple si vous envoyer le courrier dans Liste-4 alors, il sera écrit dans $MAILDIR/List-4. Il peut être interessant de la regler sur $HOME/Mail
- LOGFILE Votre fichier de log (par exemple: $MAILDIR/.log) La création du log depend de la variable LOGABSTRACT qui permet de l'inhiber
- UMASK La valeur par defaut est 077
- EXITCODE Code d'erreur retourné par procmail
- INCLUDERC Nom d'un fichier de configuration qui sera inclus comme s'il faisait partit du fichier
Les variables ci dessus et les autres sont décrites plus précisement a la fin du man procmailrc
Les recettes
Le fichier procmailrc est divisé en recettes, celle ci correspondent a une ou plusieurs conditions et a une action.
:0 [Drapeaux] [ : [fichier_de_verrouillage] ]
<zero ou plusieurs conditions (sous forme d'expression rationnelle (une par ligne)>
<Une ligne d'action>
Les drapeaux permettent de définir l'action de la recette, les principaux sont:
- H Egrep (cf man egrep) les headers (defaut)
- B Egrep le corps du message
- D Demande au egrep integré de distinguer les miniscules des majuscules
(le comportement par defaut est d'ignorer la casse)
- A Cette recette ne sera éxécutée que si le le test précedent (sur un meme niveau)
(sans A ou a) a réussi. Cela permet d'enchainer les actions qui dependent d'une condition commune. Le drapeau a permet d'attendre que la recette précedente ait été achevé.
- E Cette recette n'est éxectuée que si la recette précedent a échoué. Ca permet de spécifier un else if
- c Genere une copie carbone de ce courrier, ce qui vous permet par exemple d'envoyer une copie d'un mail sur un autre compte, d'enregistrer le mail dans deux boites, ...
- Les drapeaux sont expliqués plus en détail dans man procmail
Expression Rationnelles
Les mails sont testés par egrep (man egrep)
pour voir s'ils repondent à différentes expressions rationnelles
Elles ont cette forme:
* regexp
Cele constitue une condition, on peut en mettre plusieurs, chacunes sur leur ligne et elles doivent débuter par * (tout ce qui suit l'étoile est passé à egrep).
Vous pouvez trouver des informations sur les expressions rationnelles ici et ici.
Les expression rationnelles sont constitués de caractères normaux et de caractère ayant une fonction spéciale.
- . N'importe quel caractère
- ^ Le debut d'une ligne
- $ La fin d'une ligne
- \ Le caractère suivant n'a plus de fonction special. Par exemple: \. représente un . alors que . représente un caractère quelquonque.
- [] Un des caractères entre le crochet. Par exemple: MA[tux]N représente: MAtN ou MAuN ou MAxN.
- (groupe1|groupe2) Un des deux groupes. Par exemple: Vive\ (Linux|Windows) représente: soit Vive linux, soit vive Windows ;-).
- [^ ] Tous les caractères sauf ceux entre crochets. Par exemple [^abcdefgh] représente tous les caractères sauf abcdefgh, donc 0, ù , t et % sont accepté.
- ! juste après * permet d'inverser la condition
- > permet de faire un test sur la taille. Ex * > 1000 l'action est effectué si le mail a une taille superieure a 1000 octets
- < permet de faire un test sur la taille.
- Vous pouvez aussi voir la page de man procmailrc
La ligne d'action
Si un mail répond aux conditions imposés par la recette, on peut alors:
- Ecrire le mail dans une boite. La ligne d'action sera alors
le nom de la boîte (du fichier) soit relatif a $MAILDIR, soit absolu. Ex: /var/mail/nlsn ou Publicité
- Envoyer le mail a un autre programme via stdin. Ex: |commande -options
La commande peut, par exemple être formail.
- Envoyer le mail vers une adresse. Ex: ! utilisateur@uuccpp.fr
- Etre filtré à nouveau par une série de recettes. Ex:
{
Autres recettes
}
Si vous voulez expliquer l'utilisation des lockfiles, mailez moi
Sommaire - Suivant