Brauche Hilfe zu Dovecot Sieve!

Status
Für weitere Antworten geschlossen.

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
Hallo,

folgendes Problem: Im DSM sind die Benachrichtigungen aktiviert. Diese werden an meine E-Mail-Adresse (Abruf per getmail) auf die DS geschickt. Nun nervt es mich immer, wenn die ganzen Backup-Meldungen in meinem Posteingang landen. Um das Problem zu lösen habe ich folgende Regeln eingerichtet:

Rich (BBCode):
require "fileinto";
if header :comparator "i;ascii-casemap" :contains "subject" "[ds210] Die Netzwerksicherung auf ds210 ist abgeschlossen" {
  fileinto "_PRIVAT.BACKUPLOGS";
  stop;
} elsif header :comparator "i;ascii-casemap" :contains "subject" "[ds210] Die Zeitsicherung auf ds210 ist abgeschlossen" {
  fileinto "_PRIVAT.BACKUPLOGS";
   stop;
} else {
   keep;
}

Leider landen die Mails nach wie vor im Posteingang.
Sende ich von einem anderen Mail-Account eine Mail mit entsprechendem Betreff, greift der Filter und die Mails werden sortiert.

Wo liegt der Fehler?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Sende ich von einem anderen Mail-Account eine Mail mit entsprechendem Betreff, greift der Filter und die Mails werden sortiert.
kommen diese Mails lokal von der gleichen DS wo auch der Mailserver läuft? Eigentlich sollte dovecot-sieve immer involviert werden, sobald deliver eine Zustellung in eine Mailbox macht. Aufgrund der von dir beschriebenen Symptome würde ich vermuten, dass für die lokale Zustellung deliver nicht verwendet wird und wenn die Mail von extern kommt dann scheinbar schon. Wie hast du denn deliver in den Postfix-Zustellprozess eingebunden?
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
kommen diese Mails lokal von der gleichen DS wo auch der Mailserver läuft?
Nein, die Mails kommen von extern, hat also mit der DS nichts zu tun.
Habe deliver zu eingebunden wie im Wiki beschrieben ist.
Mir kommt es auch so vor als ob deliver nicht bei der lokalen Zustellung greift.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
zeig mal wie du deliver in main.cf und ggf auch in master.cf eingebunden hast
Nur damit ich das richtig verstehe: Die DS schickt eine Mail nach Abschluss des Backups an sich selber? Bei dieser Mail greift dann sieve ned?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Sorry habs erst gerade gesehen: Geht es nur um Mails via getmail wo sieve ned funzt?
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
Eigentlich sollten die Mails auch über ein Relay gehen und dann erst zugestellt werden, also nicht lokal.
Ist zumindest so in den Einstellungen festgelegt.
Seltsam...
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
zeig mal wie du deliver in main.cf und ggf auch in master.cf eingebunden hast
Nur damit ich das richtig verstehe: Die DS schickt eine Mail nach Abschluss des Backups an sich selber? Bei dieser Mail greift dann sieve ned?
main.cf:
Rich (BBCode):
mailbox_command = /usr/syno/mailstation/libexec/dovecot/deliver

Nach Abschluss des Backups schickt die DS eine Mail über ein externes Relay an meine Mail-Adresse, welche wiederum von der DS über getmail geholt wird. Die Mail macht dann sozusagen einen Umweg nach extern und wird dann wieder zugestellt. Wollte so eine lokale Zustellung (wo deliver womöglich nicht greift) vermeiden.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
der Umweg über getmail sollte eigentlich nicht sein müssen, denn deliver sollte auch bei der lokalen Zustellung involviert werden. Wird es auch mir auf jeden Fall auch bei lokalen Mails. Also mit getmail geht es bei dir und ohne ned? Hast du virtuelle User oder verwendest du auf der DS für Mails die lokalen User?
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
Lokale Zustellung mit virtuelle/lokalen Usern betreibe ich gar nicht auf der DS.
Zum Versenden mener Mails benutze ich generell einen Relay.
Sieve greift bei getmail aber komischerweise nicht bei Benachrichtigungen der DS, obwohl diese ja letztendlich auch über extern gehen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das klingt für mich sehr merkwürdig. So selektiv sollte sieve ned sein. Die DS verschickt diese Benachrichtigung ganz sicher direkt an einen externen Relay und nicht etwa zuerst an sich und dann an das Relay? Sagt denn das Logfile irgendetwas zum Thema sieve und/oder deliver?
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
Kann auch sein, dass die DS die Benachrichtigung erst an sich selber und dann an das Relay schickt. Wie seh ich das? Sollte aber nicht so sein, oder? Normalerweise greifen doch die Settings von den "Benachrichtigungen", oder?
Im Log gibt es leider nichts zu sehen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Kann auch sein, dass die DS die Benachrichtigung erst an sich selber und dann an das Relay schickt. Wie seh ich das? Sollte aber nicht so sein, oder?
eigentlich sollte die Benachrichtigung genau so raus wie in den Optionen eingestellt. Wie genau eine Mail raus ist kannst du in den Headern der Mail sehen. Jeder beteiligte Server sollte sein Received eintragen. Daran kannst du dann den Weg der Mail verfolgen
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
Laut Header gehen die Mails definitiv erst über das Relay bevor Sie von der DS wieder abgeholt werden.
Habs jetzt aufgegeben, habe ein extra Postfach für Logs etc. angelegt :)
Aber Danke für die Hilfe.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
eigentlich sollte das Problem irgendwie zu lösen sein.
Die Einbindung von deliver im rc getmail File (das Konfig File für den entsprechenden externen Account) ist sicher auch korrekt? Du hast ja gesagt, dass sieve grundsätzlich auch bei getmail funzt. Könnte es denn sein, dass dein Muster nicht matched? Hast du mal probiert das Muster zu kürzen? z.B. nur nach "abgeschlossen" suchen. Funzt es dann?
Code:
fileinto "_PRIVAT.BACKUPLOGS";
hast du auch im Filesystem mal nachgeguckt ob der Ordner wirklich genau so heisst? Das solltest du im Homeverzeichnis deines Users in Maildir finden. Vielleicht heisst der Ordner im Filesystem nicht genau so und damit kann sieve nichts verschieben. Habe schon Mailclients gesehen die neue Ordner versteckt (also mit . vorne dran) erstellen.
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
ja, deliver ist richtig eingebunden und matcht ja auch wenn ich von extern Mails mit einem entsprechenden Muster sende.
Bloß matchen die Benachrichtigungen von der DS eben nicht, obwohl diese ja auch erst nach extern gehen. Der angegebene Ordner heißt wirklich so.
Bin auch schon den Weg gegangen, dass ich in den Benachrichtigungen ein ganz anderes Mailkonto (hat auch nichts mit der DS zu tun) angegeben habe und in diesem Mailkonto eine Regel erstellt habe, dass alles was mit "ds210" im Namen hat an die Mailadresse, welche auf der DS angelegt ist, geschickt wird. Die Regel funktioniert, aber Sieve greift nicht!!!!!
Also Sieve greift nur bei allem was nicht mit der DS zu tun hat und von extern kommt. Echt komisch...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Bin auch schon den Weg gegangen, dass ich in den Benachrichtigungen ein ganz anderes Mailkonto (hat auch nichts mit der DS zu tun) angegeben habe und in diesem Mailkonto eine Regel erstellt habe, dass alles was mit "ds210" im Namen hat an die Mailadresse, welche auf der DS angelegt ist, geschickt wird. Die Regel funktioniert, aber Sieve greift nicht!!!!!
aber bei einer solchen Weiterleitung kommt dann getmail nicht zum Tragen. Das ist eine SMTP-Transaktion. Und bei sieve und deinem SMTP scheint es ja ein Problem zu geben. Die einzige Erklärung die mir wegen dem getmail Problem noch einfällt wäre dass der Abholprozess mit getmail unter einem anderen User läuft, als der User für den die Mails effektiv sind. Könnte es ev sein, dass bei dir getmail als root oder admin läuft? bzw bist du ganz sicher, dass dieser getmail Prozess unter deinem User läuft? d.h. unter dem User dem auch die Mailbox gehört?

Eventuell könnte es auch helfen einen alternativen Logger (z.B. ipkg syslog-ng) zu installieren. Der loggt im Vergleich zum default Logger von Synology wirklich jede Bewegung des Mailservers.
Was du auch noch probieren könntest: Ändere etwas am sieve File deines Users und lass getmail eine solche Mail extern abholen. Danach prüfst du im Homeverzeichnis des Users ob sich der Timestamp beim Binary File von sieve geändert hat. Bin ned ganz sicher wie das File heisst, aber ich meinte es hiesse .dovecot-sievec
Dieses File MUSS einen aktuelleren Zeitstempel haben als das dovecot-sieve File (also jenes File mit deinem Muster drin).
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
aber bei einer solchen Weiterleitung kommt dann getmail nicht zum Tragen. Das ist eine SMTP-Transaktion.
Klar, bei der Weiterleitung kommt getmail nicht zum Tragen aber wenn meine DS die weitergeleitete Mail von meinem Provider wieder abholt, schon.

Und bei sieve und deinem SMTP scheint es ja ein Problem zu geben. Die einzige Erklärung die mir wegen dem getmail Problem noch einfällt wäre dass der Abholprozess mit getmail unter einem anderen User läuft, als der User für den die Mails effektiv sind. Könnte es ev sein, dass bei dir getmail als root oder admin läuft? bzw bist du ganz sicher, dass dieser getmail Prozess unter deinem User läuft? d.h. unter dem User dem auch die Mailbox gehört?
wie kann ich das überprüfen?

Eventuell könnte es auch helfen einen alternativen Logger (z.B. ipkg syslog-ng) zu installieren. Der loggt im Vergleich zum default Logger von Synology wirklich jede Bewegung des Mailservers.
Sorry, dass ist mir jetzt zu aufwendig.

Was du auch noch probieren könntest: Ändere etwas am sieve File deines Users und lass getmail eine solche Mail extern abholen. Danach prüfst du im Homeverzeichnis des Users ob sich der Timestamp beim Binary File von sieve geändert hat. Bin ned ganz sicher wie das File heisst, aber ich meinte es hiesse .dovecot-sievec
Dieses File MUSS einen aktuelleren Zeitstempel haben als das dovecot-sieve File (also jenes File mit deinem Muster drin)
Der Timestamp verändert sich nicht (gerade mit Testmail getestet), Mail wird aber korrekt einsortiert.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die Sache mit dem User kannst nur du beantworten. Machst du den Aufruf via cron? Dann solltest du in der entsprechenden crontab Datei sehen unter welchem User der Job läuft. Wenn du es manuell auf der Konsole testet, dann wird es unter deinem aktuell angemeldeten User ausgeführt. Das dürfte meist root sein. ausser du verwendest su und wechselst den Benutzer. Wenn du es manuell testest, dann musst du auf der Shell als der User angemeldet sein für den auch die Mails sind (oder als root su verwenden). deliver resp sieve leiten einige wichtige Infos davon ab unter welchem User der Prozess läuft.
Ich weiss dass die Installation von ipkg syslog-ng einigen Aufwand bedeutet, aber für die Fehlersuche ist das Teil ungemein hilfreich. So loggt z.B. deliver unter welchem User es läuft und sieve wo nach welchen Files gesucht wurden.
Der Timestamp verändert sich nicht (gerade mit Testmail getestet), Mail wird aber korrekt einsortiert.
und du hast wirklich etwas an .dovecot.sieve geändert? Dann muss aber deliver das binary neukompillieren. Das sollte/muss einen neuen Timestamp geben
 

bizarre

Benutzer
Mitglied seit
12. Mrz 2010
Beiträge
66
Punkte für Reaktionen
0
Punkte
0
In der crontab des Users wird getmail.sh im Homeverzeichnis des Users ausgeführt, nehme also an, dass dann auch getmail von dem User ausgeführt wird.
Danke dir aber ich gebs auf.
Sieve funktioniert ja, wenn ich Mails von außerhalb bekomme, das langt mir erstmal.
Für die Benachrichtigungen habe ich jetzt ein extra Postfach.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Für den Fall, dass du das Problem irgenwann gelöst kriegst, wär ich an der Ursache sehr interessiert. Wie gesagt, das darf eigentlich nicht sein :)
Vielleicht installierst du ja eines Tages doch den syslog-ng ;-) Bin mir ziemlich sicher, dass in den Logs stehen wird was genau das schief geht. Ich weiss es mag klingen als hätte ich Aktien von syslog-ng, aber das Teil ist bei (fast) jeder Fehlersuche wirklich sehr sehr hilfreich.

Gruss

tobi

p.s. hast du allenfalls mal probiert statt der Suche nach dem Betreff, basierend auf dem Absender sieve zu nutzen? Letztlich kannst du mit sieve nach jedem Header in einer Mail filtern. Wer weiss vielleicht funzt es mit dem from header...
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat