Merci Edgar, toujours un boss :-))
Philippe
----- Original Message -----
From: "Edgar Bonet" <guilde@???>
To: <guilde@???>
Sent: Tuesday, April 15, 2003 3:36 PM
Subject: Re: Problemes de Pipe & Redirection
> Le mardi 15 avril, Philippe Beau a écrit :
> > J'utilise spamassassin+qmail. Les emails qui sont censés être "des
> > spams" comportent une ligne spécifique (****** SPAM *****)
>
> Ce qui est spécifique c'est la ligne "X-Spam-Flag: YES" dans les
> en-têtes. Ton mail comporte la chaîne "****** SPAM *****" et il n'est
> pourtant pas un spam.
>
> > Comment récuperer un contenu qui est pipé sur un script shell ? (bash)
>
> En utilisant n'importe quelle commande qui lit sur son entrée standard.
> Par exemple cat.
>
> > j'aimerais faire [...] :
> >
> > /usr/local/spamassassin/bin/spamassassin | \
> > /usr/local/bin/test-spam.sh | /var/qmail/bin/qmail-queue.origine
>
> Non testé :
>
> #!/bin/bash
> tmpfile=/tmp/test-spam-$$
> cat > $tmpfile
> [ grep -q 'X-Spam-Flag: YES' $tmpfile ] || cat $tmpfile
> rm -f $tmpfile
>
> Dans cet exemple, le filtre recopiera le mail sur sa sortie, sauf s'il
> contient la ligne "X-Spam-Flag: YES" dans les en-têtes ou dans le corps
> du message.
>
> Autre version (pas plus testée) en Perl :
>
> #!/usr/bin/perl
>
> # Read headers
> while (<>) {
> last if /^$/; # end of headers
> exit if /^X-Spam-Flag: YES$/; # detected as spam
> $headers .= $_;
> }
>
> # Print message
> print "$headers\n";
> while (<>) { print; } # copy the body
>
> C'est la même chose que précédemment sauf qu'ici le script détecte la
> ligne "X-Spam-Flag: YES" uniquement dans les en-têtes du message (ce qui
> est plus propre). Et on ne passe pas par un fichier temporaire.
>
> Edgar.
>
> --
> Edgar Bonet Tél : 04 76 88 10 96
> Laboratoire Louis Néel -- CNRS Mobile : 06 77 19 79 39
> 25 av. des Martyrs, BP 166 Fax : 04 76 88 11 91
> 38042 Grenoble cedex 9, France e-mail : guilde@???
>