On 12-04-16 20:14, Johannes Rohr wrote: > Hi, my setup is a dovecot 2.0.19 IMAP server on Ubuntu Precise with > the antispam plugin in version 2.0+20120225-2 and spamassassin at > version 3.2.2 > > I have been trying and failed to get the pipe backend of the antispam > plugin to work. Spamassin by itself works, a manual call of sa-learn > works fine. Bayes data is stored in a mysql DB. > > I have the following configuration in /etc/dovecot/conf.d/90-plugin.conf > > plugin { > #setting_name = value > sieve=~/.dovecot.sieve > sieve_dir=~/sieve > antispam_pipe_program_spam_arg = --spam > antispam_pipe_program_notspam_arg = --ham > antispam_pipe_program = /usr/local/bin/sa-learn-pipe.sh > antispam_pipe_program_args = --username=%u # % expansion done by > dovecot
You need to specify the argument list as a list seperated by semicolons, per example on the wiki: antispam_pipe_program_args = --username;%u The verbose debug should give you some logging to work with. Also, what does the wrapper script log when dovecot runs it? How does that differ from a manual run? > antispam_trash = trash;Trash;Deleted Items;Deleted Messages > antispam_spam = SPAM;Junk > antispam_backend = pipe > antispam_verbose_debug = 1 > antispam_debug_target = syslog > antispam_pipe_tmpdir = /tmp > } > > I have tried the following wrapper script: > #!/bin/bash > # set -x > LOGFILE=/tmp/sa-learn-pipe.log > echo "$$-start ($*)" >> $LOGFILE > #echo $* > /tmp/sendmail-parms.txt > cat<&0 >> /tmp/sendmail-msg-$$.txt > /usr/bin/sa-learn $* -D /tmp/sendmail-msg-$$.txt >> $LOGFILE 2>&1 && \ > rm -f /tmp/sendmail-msg-$$.txt > echo "$$-end" >> $LOGFILE > exit 0 > > It somehow isn't working. I can call the wrapper script manually e.g. > sudo -u vmail /usr/local/bin/sa-learn-pipe.sh --username=s...@mail.user > --ham \ > < someham > > But it doesn't work from dovecot. It seems the script is called. but no > new patterns show up in the bayes DB. Unfortunately, the plugin seems to > be documented poorly. How does it call the programme it pipes to? Is it > something like $programme --par1 --par2 < message ? Why can't / > shouldn't I call sa-learn directly? All the instructions I found on the > in internet contained a wrapper script, but none bothered to explain why > you would actually need it. > > I would be very grateful, if someone could enlighten me on that... > > Cheers, > > Johannes
signature.asc
Description: OpenPGP digital signature