sieve-filter to script fails with SHUT_WR

Stephan Bosch stephan at rename-it.nl
Wed Dec 30 16:25:16 UTC 2015



Op 30-12-2015 om 15:15 schreef Mark Stover:
> Trying to make vnd.dovecot.filter to exchange an email with my script.
> (I have a vnd.dovecot.pipe script working, so I'm pretty sure it's not
> the configuration...) I'm passing the email using stdin/stdout and
> _not_ using sockets.
>
> My script receives the email and processes it, but the filter process fails:
>
> lda(<username>): Error:
> shutdown(/usr/local/lib/dovecot-sieve/sieve-filter/CleanAttachments.py,
> SHUT_WR) failed: Socket is not connected
> lda(<username>): Error: sieve: 20-filter-incoming: line 15: filter
> action: failed to execute to program `CleanAttachments.py'
>
> Not sure, what I'm doing wrong...

Does this fix it?

http://hg.rename-it.nl/dovecot-2.2-pigeonhole/rev/63034e62482b

Regards,

Stephan.

>
> Thanks,
> Mark
>
> $ doveconf -n
> # 2.2.21 (5345f22): /usr/local/etc/dovecot/dovecot.conf
> # Pigeonhole version 0.4.9 (357ac0a0e68b+)
> # OS: Darwin 15.2.0 x86_64
> lda_mailbox_autocreate = yes
> mail_location = maildir:~/Maildir
> maildir_broken_filename_sizes = yes
> maildir_very_dirty_syncs = yes
> plugin {
>    sieve = file:~/.dovecot/sieve;active=~/.dovecot/sieve/user.sieve
>    sieve_before = /usr/local/lib/dovecot-sieve/sieve.d/
>    sieve_execute_bin_dir = /usr/local/lib/dovecot-sieve/sieve-execute
>    sieve_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute
> +vnd.dovecot.filter +vnd.dovecot.debug
>    sieve_filter_bin_dir = /usr/local/lib/dovecot-sieve/sieve-filter
>    sieve_pipe_bin_dir = /usr/local/lib/dovecot-sieve/sieve-pipe
>    sieve_plugins = sieve_extprograms
>    sieve_user_log = ~/.dovecot/sieve/sieve.log
> }
> postmaster_address = mstover at cisco.com
> protocol lda {
>    info_log_path =
>    log_path =
>    mail_plugins = " sieve"
> }
>
> Sieve Script:
>
> require [ "variables", "envelope", "vnd.dovecot.debug", "vnd.dovecot.filter" ];
>
>     if envelope :matches "to" "*" { set "to" "${1}"; }
>     if envelope :matches "from" "*" { set "from" "${1}"; }
>
>     debug_log "Received message TO=${to} FROM=${from}";
>
>     filter "CleanAttachments.py";
>
>     debug_log "Returned from CleanAttachments";
>     if envelope :matches "to" "*" { set "to" "${1}"; }
>     if envelope :matches "from" "*" { set "from" "${1}"; }
>     debug_log "Returned message TO=${to} FROM=${from}";



More information about the dovecot mailing list