sieve-filter to script fails with SHUT_WR
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...
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@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}";
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@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}";
On Wed, Dec 30, 2015 at 11:25 AM, Stephan Bosch <stephan@rename-it.nl> wrote:
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.
That seems to have fixed it.
Thanks! Mark
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@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}";
participants (2)
-
Mark Stover
-
Stephan Bosch