On 15 Feb 2020, at 12:27, Armin Schindler wrote:
On 15.02.2020 12:16, Tobias Kirchhofer wrote: ...
the sieve part seems to be very tricky. My test is now working with a public folder and I have a "sieve_before" script in place which works for rules of the private namespace. But when the rule shall "fileinto" a public folder, the mail
isn't filtered (moved) and syslog says dovecot: lmtp(.): Error ... sieve...: Mailbox doesn't exist.
After some tests I found out it always looks in the private (or
shared) namespace for that specfied folder. Do I miss a config option to let dovecot sieve "fileinto" a public namespace folder? I use dovecot version 2.2.13.
We „fileinto“ in this manner :
|fileinto „Namespace/folder“; |
This is what is not working for me.
Your procedure below is good and maybe I will use parts of it, thank you. But this part is working for already. The incoming mail is sent to dovecot (postfix virtual alias working) and the match in sieve script is correct too. The problem is that dovecot (sieve) refuses to fileinto "Namespace/folder" because it seems it wants to store the mail in private namespace with "folder1/folder2" instead. The first part of the fileinto path isn't used as namespace name. Is there a config option for this behaviour?
Maybe you are missing an include?
We have:
require "fileinto";
require "mailbox";
require "envelope";
require "subaddress";
require "variables";
require "regex";
require "editheader";
require "include";
In dovecot.conf* i found no directly related settings. Just the usual sieve settings explained here https://wiki.dovecot.org/Pigeonhole/Sieve/Configuration
Can you see the Public namespace and the folder in your MUA or via telnet?
Are you sure the ACL are correct? Can be that the error message „Mailbox doesn't exist“ is misleading and the permissions are not correct.
Here you can see how to debug if not already https://wiki.dovecot.org/Pigeonhole/Sieve/Configuration#Trace_Debugging
Armin
The procedure in our setup is like this:
- Virtual alias for each public-Folder email address within postfix:
Pattern: folder@domain.tld <mailto:folder@domain.tld> listadm+Namespace/folder@domain.tld <mailto:folder@domain.tld> Example: info@domain.tld <mailto:info@domain.tld> listadm+Verteiler/info@domain.tld <mailto:info@domain.tld>
Verteiler is the namespace, info the mailbox. listadm is a pseudo user in this context which holds the ACL for fileinto the resulting mailbox with proper permissions.
- Disassemble the virtual alias address with sieve:
Excerpt of the script. It is actually more code because we sort out spam for public folder. German comments, sorry.
|# Hat Subadresse? if envelope :matches :detail "to" "*" { # Adressaufbau: listadm+Namespace/liste@ # ${liste} wird Namespace/box set "liste" "${1}"; } […] fileinto "${liste}"; |
I can send you the whole script if you need.
-- collect@shift.agency