Guten Morgen!
So, da bin ich wieder. Ich habe das Dovecot-Wiki[1] nochmals studiert und alles neu geschrieben. Die zuständigen Stellen in der
dovecot.conf schauen nun so aus:
Code: Alles auswählen
protocols = imap pop3 sieve
mail_home = /var/vmail/%d/%n
lda_mailbox_autosubscribe = yes
lda_mailbox_autocreate = yes
Das Plugin steht in der LDA-Konfiguration:
Code: Alles auswählen
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = $mail_plugins sieve
postmaster_address = postmaster@meinedomain.de
}
Das Sieve-Plugin ist wie folgt konfiguriert:
Code: Alles auswählen
plugin {
sieve = /var/vmail/sieve/%d/%n/Default.sieve
sieve_global_path = /var/vmail/sieve/global/global.sieve
sieve_dir = /var/vmail/sieve/%d/%n/scripts
sieve_global_dir = /var/vmail/sieve/global
sieve_before = /var/vmail/sieve/global/global.sieve
}
Dann habe ich die Verzeichnisse vorbereitet:
Code: Alles auswählen
cd /var/vmail
mkdir sieve
cd sieve
mkdir global
cd global
Nun das Script für den globalen Filter (in dem Spam vorsotiert werden soll):
Der Inhalt:
Code: Alles auswählen
require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
fileinto "Spam";
}
Kompiliert mit
Abschließend ein beherztes
sowie Neustart von Dovecot. Die Pakete
dovecot-sieve und
dovecot-managesieved sind natürlich schon vorher installiert gewesen.
Jetzt hat sich der User
splendor@meinedomain.de mit Thunderbird plus Sieve-Add-On via ManageSieve am Server angemeldet und ein eigenes Script "Mailfilter" erstellt, um Mails vom User
erna@meinedomain.de in den Ordner "Erna" so schieben:
Code: Alles auswählen
require ["fileinto"];
# rule:[Erna]
if address :is "from" "erna@meinedomain.de"
{
fileinto "Erna";
}
Das Script wird wie gewünscht auf dem Server an folgendem Ort abgespeichert:
Code: Alles auswählen
/var/vmail/sieve/meinedomain.de/splendor/scripts/Mailfilter.sieve
Nun wird das Ganze mal getestet. Erna schickt mir eine E-Mail. Die Logfiles sagen:
Code: Alles auswählen
Debug: sieve: script file /var/vmail/sieve/meinedomain.de/splendor/Default.sieve not found
Debug: sieve: user's script /var/vmail/sieve/meinedomain.de/splendor/Default.sieve doesn't exist (using default script location instead)
Debug: sieve: executed before user's personal Sieve script(1): /var/vmail/sieve/global/global.sieve
Debug: sieve: using the following location for user's Sieve script: /var/vmail/sieve/global/global.sieve
Sieve findet also nicht die Datei Default.sieve. Ist ja auch logisch, da ich sie nie erstellt habe. Ich dachte aber, dass Dovecot bzw. Sieve sie ganz automatisch für mich erstellt und ich dann in Thunderbird den (leeren) Filter "Default" vorfinde und, sollte ich diesen nicht benutzen, dieser dann via Symlink auf den jeweils aktuellen Mailfilter verweist.
Aber statt dessen geht Sieve nach dieser Meldung auf den globalen Filter über und ignoriert den weiter oben mit Thunderbird und MagaeSieve erstellten.
Ich verstehe das nicht.
Wenn ich nun via Shell die Default.sieve erstelle und mit der Erna-Regel fülle, dann werden Ernas Mails natürlich gefiltert und in den gewünschten Ordner sortiert. Aber das kann ja nicht Sinn der Sache sein, denn so müsste ich für jeden User die Default.sieve händisch erstellen. Zudem müsste mir jeder User dann mitteilen, dass er ManageSieve nutzen möchte.
Und selbst dann kann der User "seine" Default.sieve nicht bearbeiten. Er sieht ja lediglich /var/vmail/sieve/%d/%n/scripts und die von ihm dort abgelegten Filter.
Sieve ignoriert alle selbst erstellten Filter, erstellt die Default.sieve nicht und macht aus dieser keinen Symlink auf die via ManageSieve in Thunderbird erstellten Filter.
Vielleicht hat ja von Euch noch jemand eine Idee, was hier falsch läuft, denn ich bin mit meinem Latein am Ende. Oder habe ich "sieve = /var/vmail/sieve/%d/%n/Default.sieve" komplett falsch verstanden?
Besten Dank für's Lesen!
Bin für jede Hilfe dankbar!
Splendor
[1]
http://wiki2.dovecot.org/Pigeonhole/Sieve