This took about 30 minutes of debugging so I figured I'd share.
The list-id block was giving me false positives, so I changed a keep to a fileinto :create, as shown below.
Adam
# Mailman & other lists using list-id elsif exists "list-id" { if header :regex "list-id" "<([a-z_0-9-]+)[.@]" { set :lower "listname" "${1}"; fileinto :create "${listname}"; } else { if header :regex "list-id" "^\\s*([a-z_0-9-]+)[.@]" { set :lower "listname" "${1}"; fileinto :create "${listname}"; stop; } else { # keep; fileinto :create "bulk"; stop;
}
}
stop;}
On Wed, May 10, 2017 at 05:02:27PM +0000, Adam Shostack wrote:
| Thanks! This is super-interesting.
|
| As I try to set up include, I get failures which may indicate a need
| for more coffee, but in /etc/dovecot/cond.f/90-sieve.conf I have:
|
| plugin {
| # Directory for :personal include scripts. The default is to use
| home directory.
| sieve_dir = %h/.sieve
|
| # Directory for :global include scripts (not to be confused with
| sieve_global_path).
| # If unset, the include fails.
| sieve_global_dir = /etc/dovecot/sieve/
| }
|
| In .sieve/mailinglist.sieve I have your file.
|
| In my main .dovecot, I have a line
|
| include :personal "mailinglist";
|
| When I run sievec, I see:
| sievec(adam): Debug: Effective uid=1000, gid=1000, home=/home/adam
| .dovecot: line 181: error: included personal script
| 'mailinglist' does not exist.
| .dovecot: error: validation failed.
| sievec(adam): Error: failed to compile sieve script '.dovecot.sieve'
|
| I've tried include "mailinglist" and "mailinglist.sieve"; I've tried
| it in ~ and the .sieve directory.
|
| All this follows https://wiki2.dovecot.org/Pigeonhole/Sieve/Examples,
| with the exception that I'm using .sieve rather than sieve as the
| directory name.
|
| Can someone point out where I'm failing?
|
| Adam
|
|
| On Wed, May 10, 2017 at 10:50:23AM +0100, Darac Marjal wrote:
| | On Tue, May 09, 2017 at 11:27:22AM -0500, Larry Rosenman wrote:
| | >On 5/9/17, 11:25 AM, "dovecot on behalf of Christian Kivalo"