Benutzerdefinierte Regeln zum Mail-Sortieren (betrifft Procmail, Cyrus)

Post Reply
Message
Author
johannes_no1

Benutzerdefinierte Regeln zum Mail-Sortieren (betrifft Procmail, Cyrus)

#1 Post by johannes_no1 »

Ich habe mir einen kleinen Rundum-Mailserver für zu Hause eingerichtet, auf dem mehrere Programme zusammenwirken:
Exim sorgt für die Zustellung interner und externer Mail, wobei es die externe an den Smarthost meines Providers (smtp.tiscali.de) weitergibt. Fetchmail hot regelmäßig die Post aus den verschiedenen Postfächern meines Providers und anderer Anbieter und übergibt sie an Procmail, das die Sortierung übernimmt. Schließlich ruft Procmail Cyrdeliver auf um die Mail in die Postfächer meines Cyrus-IMAP-Servers zu legen. Durch diesen Server habe ich dann die Möglichkeit, dass jedes Familienmitglied (mein Bruder, mein Vater und ich) von jedem PC im Heimnetzwerk aus über einen EMail-Client wie Outlook zum Beispiel auf seine Mails zugreifen kann. Dass jeder Benutzer nur seine Mail bekommt, dafür sorgt zuerst fetchmail, das verschiedene externe Adressen beim Provider (z.B. turin@tiscali.de, oder firn@haefft.de) auf die lokalen Benutzernamen überträgt (z.B. hoermann oder leonhard), von denen jeder ein eigenes IMAP-Konto hat. Das klappt alles prima.
Ich stehe nun vor einem Problem, das mir reichlich Kopfzerbrechen bereitet:
Nachdem fetchmail die Mails den lokalen Empfängern zugeordnet hat überträgt es sie an procmail. Procmail soll einfach Mail von bestimmten Adressen (wie z.B spam@adc.de) in entsprechende Mailboxen sortieren. So hat z.B. jeder IMAP-User mehrere Mailboxen, in die die eMails von vornherein einsortiert werden. Dafür gibt es eine globale procmailrc in /etc/procmailrc. Dort stehen verschieden procmailtypische Filterregeln, und trifft dann eine zu, dann ruft sie cyrdeliver mit der entsprechenden Mailbox auf, also z.B.:

:0
* ^From: SPAMADRESSE
| /bin/sed 1d | /usr/sbin/cyrdeliver -e -a $LOGNAME -m user.$LOGNAME.spam

:0
*^From: LIEBE_ADRESSE
| /bin/sed 1s | /usr/sbin/cyrdeliver -e -a $LOGNAME -m user.$LOGNAME.standard

Das klappt soweit auch, allerdings hätte ich es gerne, dass die Filterregeln nicht in der globalen procmailrc sondern z.B. in den .procmailrcs in den Homeverzeichnissen der Benutzer oder in anderen den Benutzern gehörenden Dateien definiert werden könnten, damit sich jeder Benutzer selber aussuchen kann, in welche Box er welche Mail gelegt haben möchte. Das klappt deswegen nicht, weil die normalen Benutzer keine Ausführberechtigung für cyrdeliver haben, und deshalb kommt keine einzige Mail zum Cyrus-Server, wenn eine .procmailrc im Benutzerverueichnis existiert, die solche Einträge wie oben enthält.
Ich bin also in einer Zwickmühle, und hoffe auf Eure Hilfe. Wie kann ich erreichen, dass die Benutzer Ihre Filterregeln selber bestimmen können (und sich am besten noch Ihre IMAP-Mailboxen selber erstellen können), wenn cyrdeliver verwendet wird?

Post Reply