I’m trying to run an imapsieve script when a user sends a message (this is part 
of a spam filter and I want to use outgoing messages to train the filter on 
good content).  This is my config:

plugin {

  sieve_plugins = sieve_imapsieve sieve_extprograms

  sieve = file:/var/mail/sieve/incoming.sieve

  # From elsewhere to Junk                                                      
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_before = file:/var/mail/sieve/spam.sieve

  # From Junk to elsewhere                                                      
  imapsieve_mailbox2_name = *
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_before = file:/var/mail/sieve/ham.sieve              

  # Sent                                                                        
  imapsieve_mailbox3_name = 'Sent Messages'
  imapsieve_mailbox3_causes = APPEND
  imapsieve_mailbox3_before = file:/var/mail/sieve/sent.sieve

  sieve_pipe_bin_dir = /var/mail/sieve

  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
}

The first two scripts (for training spam and ham respectively) both work.  Once 
upon a time I had the third one working as well, but apparently I changed 
something that made it break and I have no idea what that could be.  (Yes, I 
need to get my code into revision control.  I’ve already beaten myself up over 
that more than once.)

The problem appears to be in the config, not the sieve script, because the 
script is never compiled into a .svbin while the other scripts in the same 
directory are compiled.  But just for the record, this is the sieve script:

> ➔ cat /var/mail/sieve/sent.sieve 
> require ["vnd.dovecot.pipe", "copy", "imapsieve", "environment", "variables"];
> 
> if environment :matches "imap.user" "*" {
>   set "username" "${1}";
> }
> 
> pipe :copy "train.py" [ "sent", "${username}" ];


Does anyone here see the problem that I’m missing?

Thanks,
rg

Reply via email to