"Aki Tuomi" aki.tuomi@open-xchange.com schreef op 21 september 2020 06:23:
On 21/09/2020 00:37 Ferenc dovecot@bezemkast.nl wrote:
Hi,
It seems I can’t google my way out of this one. I’m trying to set up spam/ham learning but getting nowhere.
I tried Johannes Berg Antispam plugin, and syslog shows:
Sep 20 22:22:06 proefmail imap: antispam: running mailtrain backend program /usr/lib/dovecot/retrain.sh Sep 20 22:22:06 proefmail imap: antispam: running mailtrain backend program /usr/lib/dovecot/retrain.sh Sep 20 22:22:06 proefmail imap: antispam: running mailtrain backend program parameter 1 /mail/klaas Sep 20 22:22:06 proefmail imap: antispam: running mailtrain backend program parameter 2 ham
The file retrain.sh is simply:
#!/bin/sh echo hi >> debug.log
...with debug.log being an empty world-writeable file in /usr/lib/dovecot.
Absolutely nothing happens. The file debug.log is not even touched. But when I remove retrain.sh there’s an error logged so up until then, *something* happens.
After this I tried imap_sieve, following the wiki on dovecot.org, but again nothing happens. My imap.log says: Info: sieve: pipe action: piped message to program `retrain.sh’
But again debug.log is untouched.
I’m fresh out of ideas here. Any help would be most welcome.
I’m on Debian in virtual machine, Postfix delivering mail to Dovecot LMTP delivering to virtual maildirs, bogofilter for scanning incoming mail. Sieve does work for moving incoming spam to the spam mailbox.
Cheers and thanks,
Ferenc
Hi!
Those scripts are not ran as root, so you can't actually write to /usr/lib/dovecot, you should probably use some writable location.
Hi Aki,
Thanks for your quick reply! I tried /tmp/debug.log, world-writeable, but no dice.
https://doc.dovecot.org/configuration_manual/howto/antispam_with_sieve
I followed the setup here. I think it works up until the external script is called (pipe :copy "sa-learn-ham.sh"). That's why I tried echo hi >> /tmp/file. I guessed the scripts run as vmail, my virtual mail user, so I tried sudo -u vmail retrain.sh. This works. I can see the sieve script run in the log but my guess is the external script never runs. I'd like to try strace to see where things go when calling the external script but I don't know where to even start putting strace -o.
Ferenc