I switched from running my extprograms execute script directly to running with dovecot socket. Log shows only this
dovecot: lmtp(test@example.com): Debug: wdi0Tb5VPlGfPnEAM/SpMA: sieve: action execute: running program: test dovecot: lmtp(test@example.com): Debug: Namespace : Using permissions from /vmail/example.com/test: mode=0770 gid=default dovecot: script: Fatal: recv(MSG_PEEK) failed: disconnected
For testing I opened up the script and socket with permissions 777 but the error seems to indicate less about permissions more about some kind of protocol problem i guessing.
No one can help? Is anybody using the Sieve extprograms execute via Dovecot socket service? I think my config is vanilla, no? All other Dovecot and Sieve things (including quota service scripts configured very similarly) work fine.
Taking a look at the code, the error seems to indicate that no input is available on the socket when Dovecot checks. Does my script need to behave differently? What exactly to do?
Should I just go back to direct execute? What's the difference anyway beside the user/permissions will be different?
Stephan? Anyone?
Sieve script calls using this:
execute "test";
Plugin config:
plugin { sieve_plugins = sieve_extprograms sieve_global_extensions = +vnd.dovecot.execute sieve_execute_socket_dir = sieve-execute sieve_before = /usr/local/etc/dovecot/sieve } service test { executable = script /usr/local/etc/dovecot/sieve_globals/test.sh unix_listener sieve-execute/test { mode = 0660 group = vmail } }
FYI I have quota-warning sockets configured identical to this and they work good.
Dovecot 2.2.16 Pigeonhole 0.4.7
Help appreciate a lot.