<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 15 Feb 2020, at 10:43, Armin Schindler wrote:</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">On 14.02.2020 11:44, Tobias Kirchhofer wrote:</p>

<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">On 14 Feb 2020, at 11:06, Armin Schindler wrote:</p>
</blockquote>

<p dir="auto">...</p>

<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999">
<p dir="auto">The sorting in the according public folder happens in a global sieve<br>
script before user scripts are fireing. It is combined with the ‚+‘<br>
notation in postfix for sub addresses and an special ‚listadm‘ user</p>

<p dir="auto">postfix:<br>
|<br>
listadm+Verteiler/info@$DOMAIN<br>
|</p>

<p dir="auto">The sieve script is then reading the generated address and delivers it<br>
into the according public folder. We learned a lot about sieve scripting<br>
with this task :-)</p>

<p dir="auto">|sieve_before = /var/vmail/sieve/global/global-before.sieve […] |</p>

<p dir="auto">More details would be to much here.</p>

<p dir="auto">To be honest, we needed some time to get it done properly. It is a<br>
combination of features and A LOT OF testing and analysing the behaviour<br>
of postfix/dovecot/public-folder/sieve/acl.</p>
</blockquote>

<p dir="auto">the sieve part seems to be very tricky.<br>
My test is now working with a public folder and I have a<br>
"sieve_before" script in place which works for rules of the<br>
private namespace.</p>

<p dir="auto">But when the rule shall "fileinto" a public folder, the mail isn't<br>
filtered (moved) and syslog says<br>
dovecot: lmtp(.): Error ... sieve...: Mailbox doesn't exist.</p>

<p dir="auto">After some tests I found out it always looks in the private (or shared)<br>
namespace for that specfied folder.<br>
Do I miss a config option to let dovecot sieve "fileinto" a public<br>
namespace folder?<br>
I use dovecot version 2.2.13.</p>
</blockquote>

<p dir="auto">We „fileinto“ in this manner :</p>

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">fileinto „Namespace/folder“;
</code></pre>

<p dir="auto">The procedure in our setup is like this:</p>

<ol>
<li value="1">Virtual alias for each public-Folder email address within postfix:</li>
</ol>

<p dir="auto">Pattern:<br>
<a href="mailto:folder@domain.tld" style="color:#3983C4">folder@domain.tld</a> listadm+Namespace/<a href="mailto:folder@domain.tld" style="color:#3983C4">folder@domain.tld</a><br>
Example:<br>
<a href="mailto:info@domain.tld" style="color:#3983C4">info@domain.tld</a> listadm+Verteiler/<a href="mailto:info@domain.tld" style="color:#3983C4">info@domain.tld</a></p>

<p dir="auto">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.</p>

<ol>
<li value="2">Disassemble the virtual alias address with sieve:</li>
</ol>

<p dir="auto">Excerpt of the script. It is actually more code because we sort out spam for public folder. German comments, sorry.</p>

<pre style="background-color:#F7F7F7; border-radius:5px 5px 5px 5px; margin-left:15px; margin-right:15px; max-width:90vw; overflow-x:auto; padding:5px" bgcolor="#F7F7F7"><code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0" bgcolor="#F7F7F7">        # Hat Subadresse?
        if envelope :matches :detail "to" "*"
        {
                # Adressaufbau: listadm+Namespace/liste@
                # ${liste} wird Namespace/box
                set "liste" "${1}";
        }
[…]

                fileinto "${liste}";

</code></pre>

<p dir="auto">I can send you the whole script if you need.</p>

<p dir="auto">Greetings!</p>

<p dir="auto">Tobias</p>

<p dir="auto">-- <br>
<a href="mailto:collect@shift.agency" style="color:#3983C4">collect@shift.agency</a></p>
</div>
</div>
</body>
</html>