ManageSieve in public Folder
Moin,
aufbauend auf meine letzte Anfrage habe ich mir das Sieve-Plugin von
Dovecot installiert und damit herumgespielt. Das Plugin ist im Prinzip
das was ich suche. Damit ich die Regeln leichter erstellen kann, habe
ich mir einen Sieve-Client installiert (um genau zu sein läuft in einer
Jail Roundcube als Webgui für IMAP, und für Roundcube habe ich ein
Sieve-Clientplugin installiert).
Wie kann ich Sieve-Regeln auf Public-Folder anwenden? Der Grund warum
ich das gerne machen würde: Ich möchte Mails per getmail holen und per
„dovecot-lda -m Public.foobar“ in den Public-Folder foobar einsortieren
lassen. Dort soll dann von Dovecot die Sieveregel ausgeführt werden,
die Mails bestimmten (virtuellen) Usern zuteilt. Beispiel: Es kommt
eine Mail an frank.ebert@foo.bar. Diese wird von getmail über
dovecot-lda in den Ordner Public.foobar gestellt. Eine Sieve-Regel
erkennt, dass ich der Empfänger bin und stellt mir eine Kopie zu.
Regeln anlegen funktioniert mit dem Client wunderbar. Nur leider eben
nur auf die User-Maildirs. Geht das überhaupt? Gibt es elegantere
Lösungen für mein Vorhaben?
Gruß Frank
-
18. November 2013
-
Frank Ebert
-
13 Antworten
Am 18.11.2013 19:34, schrieb Frank Ebert:
> Moin,
>
> aufbauend auf meine letzte Anfrage habe ich mir das Sieve-Plugin von
> Dovecot installiert und damit herumgespielt. Das Plugin ist im Prinzip
> das was ich suche. Damit ich die Regeln leichter erstellen kann, habe
> ich mir einen Sieve-Client installiert (um genau zu sein läuft in einer
> Jail Roundcube als Webgui für IMAP, und für Roundcube habe ich ein
> Sieve-Clientplugin installiert).
>
> Wie kann ich Sieve-Regeln auf Public-Folder anwenden? Der Grund warum
> ich das gerne machen würde: Ich möchte Mails per getmail holen und per
> „dovecot-lda -m Public.foobar“ in den Public-Folder foobar einsortieren
> lassen. Dort soll dann von Dovecot die Sieveregel ausgeführt werden,
> die Mails bestimmten (virtuellen) Usern zuteilt. Beispiel: Es kommt
> eine Mail an frank.ebert@foo.bar. Diese wird von getmail über
> dovecot-lda in den Ordner Public.foobar gestellt. Eine Sieve-Regel
> erkennt, dass ich der Empfänger bin und stellt mir eine Kopie zu.
>
> Regeln anlegen funktioniert mit dem Client wunderbar. Nur leider eben
> nur auf die User-Maildirs. Geht das überhaupt? Gibt es elegantere
> Lösungen für mein Vorhaben?
>
> Gruß Frank
>
>
> _______________________________________________
> Dovecot Mailingliste
> JPBerlin – Politischer Provider
> Dovecot@listen.jpberlin.de
> https://listen.jpberlin.de/mailman/listinfo/dovecot
ist es keine Option dem getmail gleich den korrekten Empfänger
(virtueller User) anzugeben?
Moin,
> ist es keine Option dem getmail gleich den korrekten Empfänger
> (virtueller User) anzugeben?
Doch, wäre es. Das war auch der erste Weg, den ich mir überlegt hatte.
Das geht jedoch nur, wenn ich so etwas wie einen „Fallback“-Ordner
habe: Mails die zB an info@ oder nonexistend.User@ gehen, sollen dann
in den Public-Folder. Ich habe keine Option gefunden, wie ich das
konfigurieren kann.
Gruß und Danke
Frank
Am 18.11.2013 19:34, schrieb Frank Ebert:
> Regeln anlegen funktioniert mit dem Client wunderbar. Nur leider eben
> nur auf die User-Maildirs. Geht das überhaupt? Gibt es elegantere
> Lösungen für mein Vorhaben?
Richte einen Dummy-User ein und lege die mail_location vom Public-Folder
in das Maildir des Dummy-Users.
Peer
—
Heinlein Support GmbH
Schwedter Str. 8/9b, 10119 Berlin
http://www.heinlein-support.de
Tel: 030 / 405051-42
Fax: 030 / 405051-19
Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
Berlin-Charlottenburg,
Geschäftsführer: Peer Heinlein — Sitz: Berlin
> Richte einen Dummy-User ein und lege die mail_location vom
> Public-Folder in das Maildir des Dummy-Users.
Schöne Idee! Das teste ich.
Gruß Frank
> > Richte einen Dummy-User ein und lege die mail_location vom
> > Public-Folder in das Maildir des Dummy-Users.
>
> Schöne Idee! Das teste ich.
Der Test ist durch. Es funktioniert leider nicht wie geplant. Die
Publicfolder müssen ja noch ein Unterverzeichnis haben. Also
geht /home/vmail/dummy/Maildir nicht.
Ich kann mir irgendwie nicht vorstellen, dass mein Vorhaben so
ungewöhnlich ist bzw. ein catch-all mit virtuellen Usern nicht
funktioniert?! Ich hoffte, dass ich über sieve auf procmail verzichten
kann.
Gruß Frank
—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1
[20.11.2013 21:08] [Frank Ebert]:
>>> Richte einen Dummy-User ein und lege die mail_location vom
>>> Public-Folder in das Maildir des Dummy-Users.
>>
>> Schöne Idee! Das teste ich.
>
> Der Test ist durch. Es funktioniert leider nicht wie geplant. Die
> Publicfolder müssen ja noch ein Unterverzeichnis haben. Also geht
> /home/vmail/dummy/Maildir nicht.
Wer stellt bei Dir zu? Ich habe in /etc/dovecot/15-lda.conf die Einträge
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
protocol lda {
mail_plugins = $mail_plugins sieve
}
> Ich kann mir irgendwie nicht vorstellen, dass mein Vorhaben so
> ungewöhnlich ist bzw. ein catch-all mit virtuellen Usern nicht
> funktioniert?! Ich hoffte, dass ich über sieve auf procmail
> verzichten kann.
Meine Sieve-Regeln in ~/.dovecot.sieve funktionieren jedenfalls 🙂
saacht Werner
– —
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Thunderbird – http://www.enigmail.net/
iQEcBAEBAgAGBQJSjhQcAAoJEOfJ7bNoiiCNLFkH+we95z6nGVXcQm5Y8kDiLrFV
Gn47+DKAEHFcfEZy3RDRxEDCyKRxWKkLP0PXJLVcFaGw9TgHDnOVOb5kCMOr3Pi4
X5JCwU3xKss1+OBR/WHX+YNUaYkD0uz8J1JExax3zbVy4YkkdPxWcIWC1fKWdv8y
LmyeNKopJSAiRTP+k1DylhQAbi+V9WfH01DiCdjkY+PU6gHvgHFdhcmqZeX7XU3C
rT+CtlWWc8D5+Ghk24DVji2PNzqY5qJe6qeCWpKwb1uNSfkT7qEOY8I83Y567Ol7
lRX1gX9bsY2JnfucGaaZuFYmLwBI/dnHsypWbG14oZQRj8AMBwBFfFScWzM//tQ=
=Vli6
—–END PGP SIGNATURE—–
—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1
Hi,
sorry für die späte Rückmeldung. Ich hatte jedoch einen Fehler in der
Konfiguration gefunden, den ich zuerst lösen wollte: Ich konnte mich
wegen einer falschen passdb-Konfiguration mit einem falschen
Kennwort/ohne Kennwort einloggen. Ist aber nun behoben.
> Wer stellt bei Dir zu? Ich habe in /etc/dovecot/15-lda.conf die
> Einträge
Das kommt darauf an. Interne Mails werden von Postfix an lmtp
übergeben. Die Mails um die es mir jetzt hier geht, werden von getmail
an dovecot-lda übergeben.
>
> lda_mailbox_autocreate = yes
> lda_mailbox_autosubscribe = yes
> protocol lda {
> mail_plugins = $mail_plugins sieve
> }
Meine Konfiguration ist bei „protocol lda“ identisch. Die beiden ersten
Zeilen sind bei mir noch (aus)kommentiert. Es geht jedoch um eine
bestehende Mailbox, kann hier also nicht das Problem sein. Ich überlege
dennoch mal, ob ich die Funktion auch brauchen kann.
> Meine Sieve-Regeln in ~/.dovecot.sieve funktionieren jedenfalls 🙂
Meine Sieve-Regeln an sich funktionieren auch. Ich habe es jetzt auch
insgesamt anders gelöst, auch wenn das eher ein hässlicher Workaround
ist: getmail stellt mit dovecot-lda die Mails an einen eigenen User zu.
Dort werden dann sieve-Regeln ausgeführt: Für jeden User eine eigene
Regel (die Mail wird damit zum User verschoben) und eine
„Auffangregel“, die alle anderen Mails in den Public-Folder schiebt.
Hässlich, aber funktioniert. Ich sehe mir trotzdem nochmal den
Vorschlag von Tobi an. Da gibt es sicherlich auch einen Weg. Ich muss
ihn nur finden 🙂
Gruß und Danke
Frank
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v2.0.22 (FreeBSD)
iEYEARECAAYFAlKR6GEACgkQp4BsMlunaLkpDgCeJG178hXZtCclgpKaau5QFxdN
R0UAnA/qIA+1MQJ9rVadT1O68A8MI7El
=dgOC
—–END PGP SIGNATURE—–
—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1
Hi nochmal,
> Das kommt darauf an. Interne Mails werden von Postfix an lmtp
> übergeben. Die Mails um die es mir jetzt hier geht, werden von getmail
> an dovecot-lda übergeben.
Wen auch immer es interessiert… 🙂 Das habe ich nun umgestellt.
Getmail übergibt an procmail, procmail erstellt ein lockfile und cached
mit formail -D die Message-ID, was den Vorteil hat, dass die Mails
nicht mehrfach an den selben Empfänger ausgeliefert werden, wenn
mehrere Empfänger im To-Feld stehen. Direkt danach wird das
sendmail aufgerufen, das zu Postfix gehört (mit -oi -t), womit das
Zustellproblem gelöst ist. Ich muss jetzt zwar für jede Mailadresse im
Active Directory einen Benutzer anlegen, das hat allerdings den
Vorteil, dass ich weg von dem Catch-all komme.
Viele Grüße
Frank
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v2.0.22 (FreeBSD)
iEYEARECAAYFAlKSMh8ACgkQp4BsMlunaLkkpwCfTWM0CWUDogJgLvNwnyrYvrTW
OR4AmwXZngrZdGAtFQSN3okbia2/HCZC
=c4Pz
—–END PGP SIGNATURE—–
Am 20.11.2013 15:09, schrieb Frank Ebert:
>>> Richte einen Dummy-User ein und lege die mail_location vom
>>> Public-Folder in das Maildir des Dummy-Users.
>>
>> Schöne Idee! Das teste ich.
> Der Test ist durch. Es funktioniert leider nicht wie geplant. Die
> Publicfolder müssen ja noch ein Unterverzeichnis haben.
Ich habe das eben extra nochmal nachgebaut. Das klappt. Wunderbar.
Einwandfrei.
Den Satz „müssen ja noch ein Unterverzeichnis haben“ verstehe ich nicht.
Der Public-Namespace ist ein ganz normales Maildir.
> Also geht /home/vmail/dummy/Maildir nicht.
Doch. Genau das geht und liegt auch genau so vor mir.
Peer
—
Heinlein Support GmbH
Schwedter Str. 8/9b, 10119 Berlin
http://www.heinlein-support.de
Tel: 030 / 405051-42
Fax: 030 / 405051-19
Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
Berlin-Charlottenburg,
Geschäftsführer: Peer Heinlein — Sitz: Berlin
> >>> Richte einen Dummy-User ein und lege die mail_location vom
> >>> Public-Folder in das Maildir des Dummy-Users.
> >>
> >> Schöne Idee! Das teste ich.
>
> > Der Test ist durch. Es funktioniert leider nicht wie geplant. Die
> > Publicfolder müssen ja noch ein Unterverzeichnis haben.
>
> Ich habe das eben extra nochmal nachgebaut. Das klappt. Wunderbar.
> Einwandfrei.
>
> Den Satz „müssen ja noch ein Unterverzeichnis haben“ verstehe ich
> nicht. Der Public-Namespace ist ein ganz normales Maildir.
Ich habe insgesamt nur virtuelle Benutzer, die sich via ldap an einem
Active Directory authentifizieren sollen. Die userdb-Abfrage gibt als
Wert den Zielpfad zurück den Dovecot verwenden soll. Bei
mir dann im Ergebnis zB /home/vmail/dummy/Maildir/. Als prefix für den
Public-Folder habe ich Public/ konfiguriert. Die location ist derzeit
mit „maildir:/home/vmail/public“ konfiguriert. Damit die User Zugriff
auf die Public folger haben, muss ich Unterverzeichnisse
von /home/vmail/public anlegen. zB /home/vmail/public/.oeffentlich
Unterhalb von .oeffentlich gibt es dann die üblichen
Maildirverzeichnisse (cur/new etc). Ich habe nun aufgrund deines
Vorschlages die location in ein Verzeichnis eines Users gelegt:
„location = maildir:/home/vmail/dummy/public“.
> > Also geht /home/vmail/dummy/Maildir nicht.
>
> Doch. Genau das geht und liegt auch genau so vor mir.
Woher weiß dann dovecot welche Public-Folder ich haben möchte?
in /home/vmail/dummy/Maildir liegt ja nur new/cur etc. Oder ignoriert
dovecot diese und ich muss die Verzeichnisse dort anlegen? Das habe ich
tatsächlich nicht getestet, weil es ungewöhnlich aussieht. Ich teste
das, sobald die passdb-Abfrage funktioniert. Derzeit kann sich nur ein
einziger User authentifizieren. Die anderen bekommen „invalid
credentials“, obwohl die Berechtigungen im AD die selben sind. Aber ich
finde den Grund noch 🙂
Ich glaube der Groschen ist gerade gefallen: Der Prefix Public/ ist gar
nicht der „Foldername“ sondern wird von Dovecot „virtuell“ (nicht auf
Dateisystemebene) erzeugt, richtig?
Gruß und Danke fürs Nachbauen! 🙂
Frank
Am 27.11.2013 19:10, schrieb Frank Ebert:
> Ich habe insgesamt nur virtuelle Benutzer, die sich via ldap an einem
> Active Directory authentifizieren sollen. Die userdb-Abfrage gibt als
> Wert den Zielpfad zurück den Dovecot verwenden soll. Bei
> mir dann im Ergebnis zB /home/vmail/dummy/Maildir/. Als prefix für den
Es ist KEINE gute Idee das „Maildir“ schon als Ergebnis der
userdb-Abfrage ausgeben zu lassen. Setze das sauber (wie die Beispiele
zeigen!!!!) in mail_location.
Du brauchst ein sauberes $HOME, weil auch Sieve-Scripte und andere auf
$HOME verweisen (sieve_dir=~/sieve) u.a.
Ich kann nur dringend empfehlen Beispiele und Beispielkonfigurationen
ERNST zu nehmen. Die meisten Leute haben Probleme und kämpfen WEIL sie
Beispielconfigs gedankenlos abändern und die Konsequenzen nicht sehen.
Das heißt in der userdb_Abfrage „home“ und nicht „mail_location“. Das
hat einen Grund!
> Public-Folder habe ich Public/ konfiguriert. Die location ist derzeit
> mit „maildir:/home/vmail/public“ konfiguriert. Damit die User Zugriff
> auf die Public folger haben, muss ich Unterverzeichnisse
> von /home/vmail/public anlegen. zB /home/vmail/public/.oeffentlich
/home/vmail/public ist ein Maildir.
Da gibt es
cur new und tmp
und ggf. Unterordner wie „.oeffentlich“.
> Unterhalb von .oeffentlich gibt es dann die üblichen
> Maildirverzeichnisse (cur/new etc). Ich habe nun aufgrund deines
> Vorschlages die location in ein Verzeichnis eines Users gelegt:
> „location = maildir:/home/vmail/dummy/public“.
Wieso denn „public“ am Ende?
Lege es GENAU UND NUR in das Maildir-Verzeichnis des Users. Der besagte
User hier wird als Maildir-Verzeichnis doch wohl kaum am Ende den Ordner
„dummy“ haben.
Setze hier
location = maildir:/home/vmail/dummy/Maildir
und gut ist.
> Woher weiß dann dovecot welche Public-Folder ich haben möchte?
> in /home/vmail/dummy/Maildir liegt ja nur new/cur etc. Oder ignoriert
> dovecot diese und ich muss die Verzeichnisse dort anlegen? Das habe ich
Weder noch. Alles, was im Maildir des Dummy-Users ist, ist Dein Public.
Peer
—
Heinlein Support GmbH
Schwedter Str. 8/9b, 10119 Berlin
http://www.heinlein-support.de
Tel: 030 / 405051-42
Fax: 030 / 405051-19
Zwangsangaben lt. §35a GmbHG: HRB 93818 B / Amtsgericht
Berlin-Charlottenburg,
Geschäftsführer: Peer Heinlein — Sitz: Berlin
> > Ich habe insgesamt nur virtuelle Benutzer, die sich via ldap an
> > einem Active Directory authentifizieren sollen. Die userdb-Abfrage
> > gibt als Wert den Zielpfad zurück den Dovecot verwenden soll. Bei
> > mir dann im Ergebnis zB /home/vmail/dummy/Maildir/. Als prefix für
> > den
>
> Es ist KEINE gute Idee das „Maildir“ schon als Ergebnis der
> userdb-Abfrage ausgeben zu lassen. Setze das sauber (wie die Beispiele
> zeigen!!!!) in mail_location.
Ich glaube das ist vielmehr ungenaue Ausdruckweise meinerseits. (siehe
unten)
> Du brauchst ein sauberes $HOME, weil auch Sieve-Scripte und andere auf
> $HOME verweisen (sieve_dir=~/sieve) u.a.
>
> Ich kann nur dringend empfehlen Beispiele und Beispielkonfigurationen
> ERNST zu nehmen. Die meisten Leute haben Probleme und kämpfen WEIL sie
> Beispielconfigs gedankenlos abändern und die Konsequenzen nicht sehen.
>
> Das heißt in der userdb_Abfrage „home“ und nicht „mail_location“. Das
> hat einen Grund!
Das hattest du ja bereits geschrieben, ich habe es genau so umgesetzt:
user_attrs = sAMAccountName=home=/home/vmail/%$/
und in 10-mail.conf:
mail_location = maildir:~/Maildir
Mit Zielpfad meinte ich vielmehr „%$“ bzw. das Ergebnis aus der
Konfiguration und der Abfrage, also: /home/vmail/foobar/Maildir. Sorry
für die Verwirrung!
> > Unterhalb von .oeffentlich gibt es dann die üblichen
> > Maildirverzeichnisse (cur/new etc). Ich habe nun aufgrund deines
> > Vorschlages die location in ein Verzeichnis eines Users gelegt:
> > „location = maildir:/home/vmail/dummy/public“.
>
> Wieso denn „public“ am Ende?
Der Groschen ist erst vorhin gefallen. Ich hatte das „public“ am Ende
als obligatorisch angesehen.
> Lege es GENAU UND NUR in das Maildir-Verzeichnis des Users. Der
> besagte User hier wird als Maildir-Verzeichnis doch wohl kaum am Ende
> den Ordner „dummy“ haben.
>
> Setze hier
>
> location = maildir:/home/vmail/dummy/Maildir
>
> und gut ist.
Verstanden! 🙂
> > Woher weiß dann dovecot welche Public-Folder ich haben möchte?
> > in /home/vmail/dummy/Maildir liegt ja nur new/cur etc. Oder
> > ignoriert dovecot diese und ich muss die Verzeichnisse dort
> > anlegen? Das habe ich
>
> Weder noch. Alles, was im Maildir des Dummy-Users ist, ist Dein
> Public.
Ok, unschön. Dennoch teste ich es. Die passdb-Abfrage läuft inzwischen,
ich hatte tatsächlich eingeschränkte Berechtigungen des Users, wie es
die Fehlermeldung gesagt hat (hier: „anmelden an“ war zu sehr
eingeschränkt).
Herzlichen Dank für deine Ausführen! Ich hoffe, dass nicht nur ich
davon profitieren kann! 🙂
Gruß Frank
> > Setze hier
> >
> > location = maildir:/home/vmail/dummy/Maildir
> >
> Ok, unschön. Dennoch teste ich es. Die passdb-Abfrage läuft
> inzwischen, ich hatte tatsächlich eingeschränkte Berechtigungen des
> Users, wie es die Fehlermeldung gesagt hat (hier: „anmelden an“ war
> zu sehr eingeschränkt).
So, ich habe das nun getestet. Es funktioniert tatsächlich. So unschön
ist das Ergebnis nicht, ich lasse es jetzt erstmal so! 🙂
Gruß und Danke nochmal
Frank