Le mardi 15 avril, Philippe Beau a écrit :
> cat /tmp/tmp/testnospam |/var/qmail/bin/qmail-spam.sh |cat >toto
Another useless use of cat.
/var/qmail/bin/qmail-spam.sh < /tmp/tmp/testnospam > toto
> cat /tmp/tmp/test |/var/qmail/bin/qmail-spam.sh |cat >toto
>
> j'ai bien mon email, ou pas mon email
Dans tous les cas tu as un fichier toto, vide ou pas.
> Par contre, dès que je le mets en lieu & place de qmail-queue, ca ne
> marche pas.
Comment ça ne marche pas ? Qu'est-ce qui se passe ? Quelle erreur ?
Je ne connais pas qmail-queue, mais je peux imaginer qu'il trouve ça
bizarre d'être appelé pour recevoir un fichier vide. Peut-être
vaudrait-il mieux ne pas l'appeler quand c'est un spam.
> Ci-joint le contenu de mon script :
>
> #!/bin/sh
>
> tmpfile=/tmp/test-spam-$$
> spamfile=/var/log/spamassassin/spamassassin.log
> cat > $tmpfile
>
> if [ `/bin/grep 'X-Spam-Flag: YES' $tmpfile|/usr/bin/wc -l` != 0 ]; then
C'est moi qui ai fait l'erreur, mais il fallait la corriger : tu dois
ancrer le motif de grep avec ^ et $, autrement tu vas détecter
'X-Spam-Flag: YES' n'importe où. En particulier tu vas détecter comme
spam toute cette discussion. Aussi les appels à wc et test (c.-à-d. [])
sont inutiles :
if /bin/grep -q '^X-Spam-Flag: YES$' $tmpfile; then
> cat $tmpfile >>$spamfile
> rm -f $tmpfile
> else
> cat $tmpfile
> rm -f $tmpfile
> fi
Tu peux factoriser rm, je veux dire le sortir de la construction if :
if /bin/grep -q '^X-Spam-Flag: YES$' $tmpfile; then
cat $tmpfile >> $spamfile
else
cat $tmpfile
fi
rm -f $tmpfile
> qu'est ce qui ne pourrait pas aller ??
Tu peux essayer de mettre qmail-spam.sh à la fin de ton pipe, et laisser
à ce dernier le soin d'appeler qmail-queue uniquement si c'est
nécessaire :
#!/bin/sh
tmpfile=/tmp/test-spam-$$
spamfile=/var/log/spamassassin/spamassassin.log
cat > $tmpfile
if /bin/grep -q '^X-Spam-Flag: YES$' $tmpfile; then
cat $tmpfile >> $spamfile
else
/var/qmail/bin/qmail-queue.origine < $tmpfile
fi
rm -f $tmpfile
Pour info : j'utilise procmail pour ce genre de chose.
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@???