(Courriels de diversion: <ensorcelleront@approuverai-somnolent.com> <ecloraient@repugner-bolides.com> <partagerons@sensibilisant-rauques.com> <extrairez@enracines-situent.com> <gravirais@atomiques-expieras.com> <philosopherons@detecterent-polemiquerais.com> <scandalisa@retranscrirai-manchettes.com> <sautillements@trajets-machinal.com> <ballaster@delimitee-reinstallera.com> <intimidante@conquerions-refermerai.com> )


Bonsoir,

Sébastien Dinot a écrit :
| Je me débats depuis plusieurs semaines avec mon fichier .procmailrc
| pour essayer d'identifier les messages comportant une pièce jointe
| suspecte (noms se terminant par l'une des extensions MS-Windows
| classiques).
| [...]

Je me réponds à moi-même vu que j'ai trouvé la réponse à mon problème
et que, personne n'ayant pu m'aider, la solution est toujours bonne à
diffuser.

Pour que les variables soient recherchées et substituées dans les
conditions, il faut insérer entre le caractère '*' qui annonce la
condition et le début de l'expression régulière le drapeau '$' (se
reporter aux pages de manuel 'procmailrc' et 'procmailex' pour les
détails).

Le filtre devient donc :

----------------------------------------------------------------------
WS='[   ]*($[   ]+)*'
EXTLIST='bat|chm|com|dll|dot|exe|hta|js|ocx|pif|scr|shs|vba|vbs|zip'
:0H
* $ ^content-type:${WS}(multipart/mixed|application/octet-stream)
{
  :0B
  * $ ^content-disposition:${WS}(attachment|inline);${WS}(file)?name=.*\.(${EXTLIST})
  ${MAILDIR}/messages_louches
}
----------------------------------------------------------------------

Et tout fonctionne !

Démonstration en basculant en mode verbeux :

Sans le drapeau '$' :

----------------------------------------------------------------------
seb@achille:~$ procmail -m .procmailrc.test < ~/mail/testseb@achille:~$ cat ~/mail/procmail.log.testprocmail: Assigning "WS=[       ]*($[   ]+)*"
procmail: Assigning "EXTLIST=bat|chm|com|dll|dot|exe|hta|js|ocx|pif|scr|shs|vba|vbs|zip"
procmail: No match on "^content-type:${WS}(multipart/mixed|application/octet-stream)"
                                     ^^^^^
                                     Pas de substitution de ${WS}
procmail: Executing "spamassassin"
procmail: [17455] Wed Apr 14 22:27:52 2004
procmail: Match on "^X-Spam-Status: Yes"
procmail: Locking "/home/seb/mail/spam.lock"
procmail: Assigning "LASTFOLDER=/home/seb/mail/spam"
procmail: Opening "/home/seb/mail/spam"
procmail: Acquiring kernel-lock
procmail: Unlocking "/home/seb/mail/spam.lock"
From seb  Wed Apr 14 10:49:54 2004
 Subject: [CA] Re: Extended Mail System
  Folder: /home/seb/mail/spam                                    45077
----------------------------------------------------------------------

Avec le drapeau '$' :

----------------------------------------------------------------------
seb@achille:~$ procmail -m .procmailrcc.test < ~/mail/testseb@achille:~$ cat ~/mail/procmail.log.testprocmail: Assigning "WS=[       ]*($[   ]+)*"
procmail: Assigning "EXTLIST=bat|chm|com|dll|dot|exe|hta|js|ocx|pif|scr|shs|vba|vbs|zip"
procmail: Match on "^content-type:[     ]*($[   ]+)*(multipart/mixed|application/octet-stream)"
                                  ^^^^^^^^^^^^^^^^^^
                                  Substitution de ${WS}
procmail: Match on "^content-disposition:[      ]*($[   ]+)*(attachment|inline);[       ]*($[   ]+)*(file)?name=.*\.(bat|chm|com|dll|dot|exe|hta|js|ocx|pif|scr|shs|vba|vbs|zip)"
procmail: Assigning "LASTFOLDER=/home/seb/mail/messages_louches"
procmail: Opening "/home/seb/mail/messages_louches"
procmail: Acquiring kernel-lock
From seb  Wed Apr 14 10:49:54 2004
 Subject: [CA] Re: Extended Mail System
  Folder: /home/seb/mail/messages_louches                        42369
----------------------------------------------------------------------

Sébastien

-- 
Sébastien Dinot, sdinot@april.orgSecrétaire de l'APRIL (http://www.april.org)
Association pour la Promotion et la Recherche en Informatique Libre

--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>