Auf [Bitte][1] hin will ich das Anlegen von “shared folders” unter [courier-imapd][2] nochmals etwas erläutern. Verwendet habe ich Version 3.0.2.

Als Vorbereitung habe ich einen funktionalen User angelegt, der dann in der /etc/aliases in die Mailverteiler aufgenommen wird. Nachdem alles gut funktioniert, können die einzelnen Benutzer dann aus dem Verteiler herausgenommen werden und nur der funktionale Benutzer verbleibt (und die, die trotzdem alle Mail bekommen wollen).

Im $HOME dieses Benutzers legt man dann zuerst das Maildir an, das die “shared folders” enthalten soll. Das kann man natürlich auch bei jedem einzelnen Benutzer machen, so dass der IMAP-Server dann eine ganze Reihe an gemeinsamen Ordnern anbietet.

Die Beispiele hier legen zuallererst das Maildir “Shared” an, und danach in “Shared” drei verschiedene Ordner, die sinnigerweise, der Anschaulichkeit halber, nach den Berechtigungen benannt wurden, lesbar (read), gruppenschreibbar (group) und weltschreibbar (write).

1maildirmake -S Shared
2maildirmake -s group -f group Shared
3maildirmake -s read -f read Shared
4maildirmake -s write -f write Shared

Die Auswirkungen der unterschiedlichen Rechtevergabe kann man sehr leicht sehen. Im Gruppenfall fehlende Weltrechte und das sticky-bit im Falle der Weltschreibbarkeit:

 1bronski@tesla:~$ ls -ld Shared
 2drwxr-xr-x   8 bronski  emp          512 Apr  8 12:02 Shared
 3
 4bronski@tesla:~$ ls -la Shared
 5drwxr-x---   5 bronski  emp          512 Apr  8 12:02 .group
 6drwxr-xr-x   5 bronski  emp          512 Apr  8 12:01 .read
 7drwxr-xr-t   5 bronski  emp          512 Apr  8 12:01 .write
 8drwx------   2 bronski  emp          512 Apr  8 11:54 cur
 9drwx------   2 bronski  emp          512 Apr  8 11:54 new
10drwx------   2 bronski  emp          512 Apr  8 11:54 tmp
11
12bronski@tesla:~$ ls -la Shared/.group/
13drwxr-x---   2 bronski  emp          512 Apr  8 12:02 cur
14drwxr-x---   2 bronski  emp          512 Apr  8 12:02 new
15drwxr-x---   2 bronski  emp          512 Apr  8 12:02 tmp
16
17bronski@tesla:~$ ls -la Shared/.read/
18drwxr-xr-x   2 bronski  emp          512 Apr  8 12:01 cur
19drwxr-xr-x   2 bronski  emp          512 Apr  8 12:01 new
20drwxr-xr-x   2 bronski  emp          512 Apr  8 12:01 tmp
21
22bronski@tesla:~$ ls -la Shared/.write/
23drwxrwxrwt   2 bronski  emp          512 Apr  8 12:01 cur
24drwxrwxrwt   2 bronski  emp          512 Apr  8 12:01 new
25drwxrwxrwt   2 bronski  emp          512 Apr  8 12:01 tmp

Im nächsten Schritt legt man unter dem funktionalen Benutzer eine .procmailrc mit passenden Regeln an, um per [procmail][3] die Mails auf die unterschiedlichen Ordner zu verteilen. Wenn das soweit fertig ist, kann man die “Gruppenmailbox” freigeben.

Dazu legt man in dem Ordner, in dem die courier-Konfiguration liegt (bei mir ist das /opt/courier-imapd/etc, es kann aber auch /etc/courier oder /etc/cimap sein), die Datei maildirshared an. In dieser werden alle Verzeichnisse, die “shared folders” enthalten (also die, die man mittels maildirmake -S angelegt hat), eingetragen. Im Format “nickname/pfad/zum/maildir”:

Als Beispiel habe ich hier mal eine komplette Firmenstruktur mit Abteilungen angelegt:

11stLevelSupport	/home/support/mailfolders/1stlevel
22ndLevelSupport	/home/support/mailfolders/2ndlevel
33rdLevelSupport	/home/support/mailfolders/3rdlevel
4Entwicklung	/home/developers/mailfolders/developers
5Marketing	/home/marketing/mailfolders/marketing
6Management	/home/management/mailfolders/management

Innerhalb dieser einzelnen Verzeichnisse liegen dann die abteilungseigenen “shared folders” (s.o., maildirmake -s group -f name folder) wie beispielsweise Mitteilungen, Witze, Sport, Bowling, Planung, was auch immer.

Je nachdem bietet es sich an, diese Listen nur lesbar oder schreibbar zu machen. Ein Restart des IMAPd und in den Mailclients sollten die Gruppenordner auftauchen. Zumindest bei [Mail.app][4] und [Balsa][5] taten sie dies klaglos.

[mutt][6] kann auch per IMAP auf “shared folders” zugreifen, die Syntax ist dann folgendermassen:

c imap://adresse/shared.ordner.name

Das “ordner” in diesem Beispiel ist durch den in der Datei “maildirshared” angegebenen “nicknames” zu ersetzen und “name” durch den Namen der entsprechenden Mailbox innerhalb des Gruppenordners.

[1]: https://bronski.net/2004/04/07/cur-new-tmp/#comments “Axel fragt nach… [2]: http://www.inter7.com/courierimap.html “courier-IMAPd” [3]: http://www.procmail.org/ “procmail” [4]: http://www.apple.com/macosx/features/mail/ “Apple Mail” [5]: http://balsa.gnome.org/ “Balsa” [6]: http://www.mutt.org/ “mutt”