On 15 Feb 2020, at 10:43, Armin Schindler wrote:
On 14.02.2020 11:44, Tobias Kirchhofer wrote:
On 14 Feb 2020, at 11:06, Armin Schindler wrote:
...
The sorting in the according public folder happens in a global sieve
script before user scripts are fireing. It is combined with the ‚+‘
notation in postfix for sub addresses and an special ‚listadm‘ userpostfix:
|
listadm+Verteiler/info@$DOMAIN
|The sieve script is then reading the generated address and delivers it
into the according public folder. We learned a lot about sieve scripting
with this task :-)|sieve_before = /var/vmail/sieve/global/global-before.sieve […] |
More details would be to much here.
To be honest, we needed some time to get it done properly. It is a
combination of features and A LOT OF testing and analysing the behaviour
of postfix/dovecot/public-folder/sieve/acl.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“;
The procedure in our setup is like this:
Pattern:
folder@domain.tld listadm+Namespace/folder@domain.tld
Example:
info@domain.tld listadm+Verteiler/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.
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.
Greetings!
Tobias