Hello,
I'm trying to achieve the following scenario with dovecot + sieve + procmail.
Dovecot is set as LDA in postfix (if this makes any difference) I need to set sieve that after it has executed all it's scripts (including before, ~/.sieve etc) and if keep is in still in effect to call procmail to also execute the custom user filters and then return (if it is not forwarded elsewhere or some) to dovecot for normal delivery.
If you ask this I need this for backward compatibility. I now use procmail for local delivery,spam/virus filtering, and users have set a lot of custom filters/redirects.
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
I want to migrate to dovecot as lda and sieve for filtering but to keep procmail working for a while.
I have tried to follow (partially) this guide https://www.enricozini.org/blog/2022/debian/migrating-from-procmail-to-sieve... but procmail fails to execute
########################## Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail: Establishing connection Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail: Forked child process Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Connected to program Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Finished streaming payload to program Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Finished input to program Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Disconnected Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Waiting for program to finish after 0 msecs (timeout = 10000 msecs) Aug 30 15:22:26 uk7 dovecot[112153]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Fatal: execvp(/var/lib/dovecot/sieve-pipe/procmail) failed: Permission denied Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Child process ended Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Terminated with non-zero exit code 75 Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Debug: program exec:/var/lib/dovecot/sieve-pipe/procmail (112153): Destroy Aug 30 15:22:26 uk7 dovecot[112151]: lda(test-uk7.teststring567.tk)<112151><BlNhECIdDmMXtgEAsVjU+A>: Error: sieve: failed to execute to program `procmail': refer to server log for more information. [2022-08-30 15:22:26] ############################### i couldn't find the logs referred
here some relative (on my opinion) configs: ################################ #/etc/dovecot/conf.d/90-sieve.conf plugin { sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_extprograms sieve_extensions = +vnd.dovecot.pipe sieve_pipe_bin_dir = /var/lib/dovecot/sieve-pipe sieve_after = /var/lib/dovecot/sieve_after sieve_trace_dir = ~/.sieve-trace sieve_trace_level = matching sieve_trace_debug = yes } #################################### #/var/lib/dovecot/sieve-pipe/procmail
#!/bin/sh exec /usr/bin/procmail ##################################### #/var/lib/dovecot/sieve_after/procmail.sieve require "vnd.dovecot.pipe";
pipe "procmail"; #####################################
#cat /etc/procmailrc
SHELL="/bin/bash" SENDMAIL="/usr/sbin/sendmail" SENDMAILFLAGS="-oi -t"" LOGFILE="/var/log/procmail.log" # fully define here so user .procmailrc can use it too DELIVER="/usr/libexec/dovecot/deliver -d $LOGNAME" # fallback: DEFAULT="$HOME/Maildir/" MAILDIR="$HOME/Maildir/"
# deliver spam to spam folder :0 w
- ^X-Spam-Status: Yes | $DELIVER -m spam
uncomment next line to support user .procmailrc files
INCLUDERC=$HOME/.procmailrc
# deliver to INBOX and stop :0 w | $DELIVER #########################################
Thank you in advance