<!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 14 Feb 2020, at 11:06, Armin Schindler wrote:</p>

<blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px">
<p dir="auto">Hello!</p>

<p dir="auto">we are about to move from cyrus to dovecot and have one open issue<br>
for that migration.<br>
With cyrus we have "shared/" folders with a name that is self defined like<br>
  shared/project-xyz<br>
but the email address for direct delivery to that folder my be different<br>
(not <a href="mailto:project-xyz@domain.com" style="color:#777">project-xyz@domain.com</a>).</p>

<p dir="auto">With dovecot we try to have it similar (at least how the user sees it in the client)<br>
like it is now.</p>

<p dir="auto">When configuring a namespace of type=shared, I see in the docs the the prefix<br>
can be configured with %%u , %%n or %%d. But is it possible to configure<br>
the name different to the email address? E.g. to hide the email address of<br>
that folder and show a nice name instead?</p>

<p dir="auto">I also thought about using public namespace instead. Does this make sense here?<br>
With public (maybe configured with prefix=shared/) folder I can set any name<br>
as subdir in prefix, right?<br>
So would this be more like what we have with cyrus shared folder?</p>

<p dir="auto">If so, how could these public folders have an email address for direct mail delivery into?<br>
Can something like a global sieve rule do that? Or can a public folder have an email address?</p>

<p dir="auto">Thanks in advance.<br>
Armin</p>
</blockquote>

<p dir="auto">Hi, we went through this some years ago. It is a bit tricky in the details. Involved is postfix, public namespace, subscriptions, acl, sieve.</p>

<p dir="auto">We found a quite comprehensive solution so far. It is working similar to Cyrus shared folder. Do not mix the names. Cyrus „shared“ folders are „public“ folders in Dovecot. Dovecot „shared“ folders are personally shared folders from one user to another.</p>

<p dir="auto">For our new setup (planned with CentOS 8, waiting for the official repo for the latest dovecot version…) we have a prototype on Debian base with the latest version of Dovecot. In opposite to our current solution we will implement global acls with user and groups from LDAP. This is very nice.</p>

<p dir="auto">Some elements:</p>

<p dir="auto">Global ACL:<br>
<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7"><br>
[..]<br>
Newsletter group=administrator lrwstipekxa<br>
Newsletter/* group=team lrwstipe<br>
Newsletter/* user=name@domain.tld lrwstipe<br>
[…]<br>
</code></p>

<p dir="auto">Public folder:<br>
<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7"><br>
namespace {<br>
  type = public<br>
  prefix = Newsletter/<br>
  separator = /<br>
  location = maildir:/var/vmail/public/$DOMAIN/newsletter:LAYOUT=fs:INDEXPVT=~/public/$DOMAIN/newsletter<br>
  subscriptions = no<br>
  hidden = no<br>
  list = children<br>
}<br>
</code></p>

<p dir="auto">Subscriptions (! This one was tricky)<br>
```<br>
namespace subscriptions {<br>
    subscriptions = yes<br>
    prefix =<br>
    separator = /<br>
    list = no<br>
    hidden = yes<br>
}</p>

<p dir="auto">namespace inbox {<br>
    inbox = yes<br>
    separator = /<br>
    prefix = INBOX/<br>
    subscriptions = no<br>
[…]<br>
```</p>

<p dir="auto">„Dovecot“ Shared folder (optional):<br>
<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7"><br>
namespace shared {<br>
    type = shared<br>
    separator = /<br>
    prefix = Shared/%%u/<br>
    location = maildir:%%h/:INDEXPVT=~/shared/%%u<br>
    list = children<br>
    subscriptions = no<br>
}<br>
</code></p>

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

<p dir="auto">postfix:<br>
<code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7"><br>
listadm+Verteiler/info@$DOMAIN<br>
</code></p>

<p dir="auto">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 :-)</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">sieve_before = /var/vmail/sieve/global/global-before.sieve

[…]

</code></pre>

<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 combination of features and A LOT OF testing and analysing the behaviour of postfix/dovecot/public-folder/sieve/acl. For now we have a Public folder setup which is as nice like it is with Cyrus. With Cyrus this issue is less complex to implement.</p>

<p dir="auto">Maybe this helps a bit. Take exclusivly one to two weeks for this task and read and test a lot! :-)</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>