Re: Problemes de Pipe & Redirection

Top Page

Reply to this message
Author: Philippe B
Date:  
To: Edgar Bonet, guilde
Subject: Re: Problemes de Pipe & Redirection
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@???

>