[Dovecot] Using global und per-user sieve scripts at the same time
Hi list, I'm trying to get a global sieve mailfilter with per-user sieve scripts to work. At the "lda"-section in the dovecot.conf file I have: global_script_path = /usr/local/etc/sieve/spam /usr/local/etc/sieve/spam: require "fileinto"; if header :contains ["Subject"] ["***Spam***"] { fileinto "Spam"; stop; } which will work fine delivering Spam Mails in a Spam dir for every user. If a user creates his own .dovecot.sieve file the global script will not work anymore. How can I enable global and local per-user sieve scripts at once? Is this possible? Do you know any workaround so all users will have the same (Spam-)sieve filters beside there own (global templates or so)? Matthias
On 26.11.2007 16:50, Matthias Kellermann wrote:
Hi list,
I'm trying to get a global sieve mailfilter with per-user sieve scripts to work.
At the "lda"-section in the dovecot.conf file I have: global_script_path = /usr/local/etc/sieve/spam
/usr/local/etc/sieve/spam: require "fileinto";
if header :contains ["Subject"] ["***Spam***"] { fileinto "Spam"; stop; }
which will work fine delivering Spam Mails in a Spam dir for every user. If a user creates his own .dovecot.sieve file the global script will not work anymore.
How can I enable global and local per-user sieve scripts at once? Is this possible? Do you know any workaround so all users will have the same (Spam-)sieve filters beside there own (global templates or so)?
Matthias
You forgot to insert this one, where users sieve files stored. plugin { sieve = /var/mail/store/%u/sieve }
Nikolay Shopik schrieb:
You forgot to insert this one, where users sieve files stored.
plugin { sieve = /var/mail/store/%u/sieve }
Thanks for your answer Nikolay. But I think this won't do the trick. This setting will override the global setting as well. At the moment I'm using the default location for the sieve scripts in the user's home dir.
Matthias
On 26.11.2007 18:57, Matthias Kellermann wrote:
Nikolay Shopik schrieb:
You forgot to insert this one, where users sieve files stored.
plugin { sieve = /var/mail/store/%u/sieve }
Thanks for your answer Nikolay. But I think this won't do the trick. This setting will override the global setting as well. At the moment I'm using the default location for the sieve scripts in the user's home dir.
Matthias
Very strange but in my case global rules still works even if user have their own sieve rules. So spam still moved to junk folder ;).
Nikolay Shopik schrieb:
On 26.11.2007 18:57, Matthias Kellermann wrote:
Nikolay Shopik schrieb:
You forgot to insert this one, where users sieve files stored.
plugin { sieve = /var/mail/store/%u/sieve }
Thanks for your answer Nikolay. But I think this won't do the trick. This setting will override the global setting as well. At the moment I'm using the default location for the sieve scripts in the user's home dir.
Matthias
Very strange but in my case global rules still works even if user have their own sieve rules. So spam still moved to junk folder ;).
Hmm, so you have an entry like this in your LDA section:
global_script_path = /usr/local/etc/sieve/spam
Where spam is the file with the global sieve rules. Then you have the following entry in the plugin section:
sieve = /var/mail/store/%u/sieve
Where sieve ist the per-user sieve file, right? Is /var/mail/store the same location where you save the user's email?
Matthias
On Nov 27, 2007, at 10:23 AM, Matthias Kellermann wrote:
Nikolay Shopik schrieb:
On 26.11.2007 18:57, Matthias Kellermann wrote:
Nikolay Shopik schrieb:
You forgot to insert this one, where users sieve files stored.
plugin { sieve = /var/mail/store/%u/sieve }
Thanks for your answer Nikolay. But I think this won't do the trick. This setting will override the global setting as well. At the
moment I'm using the default location for the sieve scripts in the user's
home dir.Matthias
Very strange but in my case global rules still works even if user
have their own sieve rules. So spam still moved to junk folder ;).Hmm, so you have an entry like this in your LDA section:
global_script_path = /usr/local/etc/sieve/spam
Where spam is the file with the global sieve rules. Then you have the following entry in the plugin section:
sieve = /var/mail/store/%u/sieve
Where sieve ist the per-user sieve file, right? Is /var/mail/store the same location where you save the user's email?
Matthias
Well my global script path little bit different, sieve_global_path = /var/mail/sieve/global.sieve but it doesn't really matter.
Yes that's is correct /var/mail/store is path of my maildir store
with users folders inside.
Hi list, I'm still trying to get global and per-user sieve scripts to work. With no success yet. This is what I've got for the moment: dovecot.conf ----------------------------------------------- protocol lda { postmaster_address = postmaster@mydomain.tld fsync_disable = no mail_plugins = cmusieve quota mail_plugin_dir = /usr/local/lib/dovecot/lda sieve_global_path = /usr/local/etc/sieve/spam sendmail_path = /usr/sbin/sendmail auth_socket_path = /var/run/dovecot/auth-master } plugin { sieve = /usr/mail/%Lu/sieve } ----------------------------------------------- /usr/local/etc/sieve/spam: ----------------------------------------------- require "fileinto"; if header :contains ["Subject"] ["***Spam***"] { fileinto "Spam"; stop; } ----------------------------------------------- If I enable sieve_global_path and sieve in plugin section only the user sieve script is working. If I enable only the sieve_global_path setting this one is working. Both at the same time won't work. Dovecot version is 1.0.7. Is there really a way to get this to work under Dovecot 1.0.7? Matthias
On Mon, 2007-12-10 at 16:46 +0100, Matthias Kellermann wrote:
I'm still trying to get global and per-user sieve scripts to work. With no success yet. .. Is there really a way to get this to work under Dovecot 1.0.7?
Not by changing settings. Sieve plugin v1.0 can run only a single script.
Hi Timo Sirainen,
It's said that v1.1 support include:
include (v1.1 only) see: http://wiki.dovecot.org/LDA/Sieve
will it work for such requirement?
Timo Sirainen wrote:
On Mon, 2007-12-10 at 16:46 +0100, Matthias Kellermann wrote:
I'm still trying to get global and per-user sieve scripts to work. With no success yet. . Is there really a way to get this to work under Dovecot 1.0.7?
Not by changing settings. Sieve plugin v1.0 can run only a single script.
-- Xueron Nee
On Mon, 2007-11-26 at 14:50 +0100, Matthias Kellermann wrote:
If a user creates his own .dovecot.sieve file the global script will not work anymore.
How can I enable global and local per-user sieve scripts at once? Is this possible?
Unfortunately not. Sieve plugin v1.1 (requires Dovecot v1.1) supports include extension, so in per-user scripts they could include the global script. It should probably be somewhat easy to do this including automatically.
(Actually I'm hoping to offload Sieve development to Stephan Bosch and his completely rewritten Sieve code. I don't know when it's going to be in a usable state though. And I hope the code's existence wasn't a secret.. :)
Timo Sirainen schrieb:
On Mon, 2007-11-26 at 14:50 +0100, Matthias Kellermann wrote:
If a user creates his own .dovecot.sieve file the global script will not work anymore.
How can I enable global and local per-user sieve scripts at once? Is this possible?
Unfortunately not. Sieve plugin v1.1 (requires Dovecot v1.1) supports include extension, so in per-user scripts they could include the global script. It should probably be somewhat easy to do this including automatically.
It's Dovecot 1.07 on FreeBSD. So there is no include option. So I will write a little script which will copy a template sieve file in each users home directory on/after creation.
(Actually I'm hoping to offload Sieve development to Stephan Bosch and his completely rewritten Sieve code. I don't know when it's going to be in a usable state though. And I hope the code's existence wasn't a secret.. :)
Is that sieve implementation better than the current one (fork of Cyrus sieve implementation if I remember correctly)?
Matthias
On Mon, Nov 26, 2007 at 04:17:43PM +0200, Timo Sirainen wrote:
On Mon, 2007-11-26 at 14:50 +0100, Matthias Kellermann wrote:
If a user creates his own .dovecot.sieve file the global script will not work anymore.
How can I enable global and local per-user sieve scripts at once? Is this possible?
Unfortunately not. Sieve plugin v1.1 (requires Dovecot v1.1) supports include extension, so in per-user scripts they could include the global script. It should probably be somewhat easy to do this including automatically.
(Actually I'm hoping to offload Sieve development to Stephan Bosch and his completely rewritten Sieve code. I don't know when it's going to be in a usable state though. And I hope the code's existence wasn't a secret.. :)
That is cool... more implementations are better.
FWIW I've liberated (as in, made into a library) my own language implementation (which includes Sieve as a subset, but can be used at runtime as Sieve-only and could probably be made Sieve-only at compile time). This is an effort I did to help make the language implementation more standalone and easier to work on. Currently it's only in a private area but will likely be used (and thus be availble) in the next (approximately year-end) release of the package of programs that use this language.
It would be interesting to have some kind of standard API for Sieve libraries, but I do wonder how feasible that would be.
mm
participants (5)
-
Mark E. Mallett
-
Matthias Kellermann
-
Nikolay Shopik
-
Timo Sirainen
-
Xueron Nee