Ich bin gerade von einem alten Ubuntu 10.4 VPS auf ein glänzendes neues Ubuntu 14.04 migriert.

Nach ein wenig Arbeit habe ich alles außer Taubenschlag mit Sieb zum Laufen gebracht.

Bei dieser Frage geht es um das Filtern von Nachrichten, die über Exim an Dovecot gesendet werden

Erwartetes Verhalten: Exim erhält eine E-Mail, überprüft sie auf Spam und liefert sie über /var/run/dovecot/deliver... an Dovecot durch das Filterskript.

Tatsächliches Verhalten: Exim liefert die Post an Taubenschlag.... Der Siebfilter wird auf die Post angewendet

Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: using the following location for user's Sieve script: /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: loading script /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it is already stored
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): Debug: sieve: executing script from /var/mail/timmeey/sieve/.dovecot.svbin
Sep 25 18:41:57 myHostxxx dovecot: lda(timmeey): sieve: msgid=<[email protected]>: stored mail into mailbox 'INBOX'

aber am Ende scheint es meine Regeln zu ignorieren und die Nachricht einfach im Posteingang zu speichern. ABER manchmal wird ein Filter angewendet und die Nachricht wird im entsprechenden Ordner gespeichert. aber bis jetzt habe ich keine deterministische regel gefunden, wann es funktioniert und wann nicht.

Normalerweise würde ich denken, vielleicht sind meine Regeln gebrochen. Aber wenn ich die Filter mit Sieb-Test teste

sieve-test  /var/mail/timmeey/sieve/.dovecot.sieve ./mail1 -D
sieve-test(timmeey): Debug: Effective uid=1000, gid=1000, home=/home/timmeey
sieve-test(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
sieve-test(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently    not possible to include `:global' scripts.
debug: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded.
debug: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it is already stored.
sieve-test(timmeey): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
Performed actions: 
* store message in folder: pool/wichtig
Implicit keep:
(none)
sieve-test(timmeey): Info: final result: success

Der Test sagt, dass alles in Ordnung ist. (Ich habe die Quelle der Mail von Thunderbird in die Textdatei "mail1" kopiert

Hier ein Beispiel, wann es funktioniert hat

Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:gl
obal' scripts.
Sep 25 18:24:41 h2339537 dovecot: lda(timmeey): Debug: sieve: using the following location for user's Sieve script: /var/mail/timmeey/sieve/.dov
ecot.sieve;name=main script
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: loading script /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it 
is already stored
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): Debug: sieve: executing script from /var/mail/timmeey/sieve/.dovecot.svbin
Sep 25 18:24:41 myHostxxx dovecot: lda(timmeey): sieve: msgid=<[email protected]>: stored mail into mailbox 'listen/owncloud-user'

Taubenschlag 2.2.9 Ubuntu 14.04

Ich habe hier wirklich keine Ideen mehr... Auf meinem alten VPS hat alles gut funktioniert. Ich habe sogar den Server neu gestartet...

Danke im Voraus.

EDIT: Das wird ziemlich ausführlich, sorry.

Hier zunächst der Header, auf den der Filter auslösen soll. (Ich habe alle anderen Geräusche aus der Mail entfernt und offensichtlich einige persönliche Informationen entfernt, weil ich bereits genug Spam bekomme :-P Aber das sollte die Filter nicht beeinträchtigen

FUNKTIONIERT NICHT MAIL

Die erste Mail löst also den Filter aus, wenn ich ein Testsieb darauf starte. Es würde es in 'pool/wichtig' speichern

Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Sat, 27 Sep 2014 01:46:12 +0200
[...]


> $ sieve-test  /var/mail/timmeey/sieve/.dovecot.sieve ./poolMail -D -t -Tlevel=tests                                                                                                                       
sieve-test(timmeey): Debug: Effective uid=1000, gid=1000, home=/home/timmeey
sieve-test(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
sieve-test(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.
debug: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded.
debug: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it is already stored.
sieve-test(timmeey): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=

Performed actions:

 * store message in folder: pool/wichtig

Implicit keep:

  (none)

sieve-test(timmeey): Info: final result: success

Und hier haben wir die Logausgabe von dem Zeitpunkt, als ich die Mail tatsächlich erhalten habe. Es hat nicht ausgelöst, aus welchen Gründen auch immer. (Der Filter ist richtig eingestellt

lrwxrwxrwx 1 timmeey timmeey   21 Sep 27 01:45 .dovecot.sieve -> serverFaultTest.sieve

)

Sep 27 01:46:12 h6666666 dovecot: lda: Debug: Loading modules from directory: /usr/lib/dovecot/modules
Sep 27 01:46:12 h6666666 dovecot: lda: Debug: Module loaded: /usr/lib/dovecot/modules/lib90_sieve_plugin.so 
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: Effective uid=1000, gid=1000, home=/home/timmeey
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: mbox: INBOX defaulted to /var/mail/timmeey/timmeey/inbox
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: fs: root=/var/mail/timmeey/timmeey, index=, indexpvt=, control=, inbox=/var/mail/timmeey/timmeey/inbox, alt=
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: userdb lookup skipped, username taken from USER environment
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: Destination address: [email protected] (source: [email protected]) 
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: using the following location for user's Sieve script: /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: loading script /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: script binary /var/mail/timmeey/sieve/.dovecot.svbin is not up-to-date
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: script `main script' from /var/mail/timmeey/sieve/.dovecot.sieve;name=main script successfully compiled
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): Debug: sieve: executing script from /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 27 01:46:12 h6666666 dovecot: lda(timmeey): sieve: msgid=<[email protected]>: stored mail into mailbox 'INBOX'

MAIL, DIE FUNKTIONIERT

UND hier haben wir eine Facebook-Mail, die beim Testen funktioniert und den Filter ausgelöst hat UND als ich die eigentliche Mail erhalten habe

Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Fri, 26 Sep 2014 20:52:30 +0200
Received: from facebook.com (ugG7XsRqKzRYl9dQStMUIo10vkuNI1jSm7GtZghIpww+XBdr3TIkc02H/roiAJF9 10.158.104.67)
 by facebook.com with Thrift id 3bd81b8845ae11e483660002c9550d78-92fed3e0;
 Fri, 26 Sep 2014 11:52:15 -0700
X-Facebook: from 10.88.41.65 ([MTI3LjAuMC4x]) 
    by async.facebook.com with HTTP (ZuckMail);
Date: Fri, 26 Sep 2014 11:52:15 -0700
To: Kurdistan Charity Minigolf-Turnier im Bunker <[email protected]>
From: "XXXX XXXXX" <[email protected]>
Reply-to: Reply to comment <[email protected]ook.com>    





> $ sieve-test  /var/mail/timmeey/sieve/.dovecot.sieve ./facebookMail -D -t -Tlevel=tests                                                                                                                   
sieve-test(timmeey): Debug: Effective uid=1000, gid=1000, home=/home/timmeey
sieve-test(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
sieve-test(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.
debug: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded.
debug: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it is already stored.
sieve-test(timmeey): Debug: none: root=, index=, indexpvt=, control=, inbox=, alt=

Performed actions:

 * store message in folder: facebook

Implicit keep:

  (none)

sieve-test(timmeey): Info: final result: success

Sehen? Diese E-Mail wurde beim TESTEN ausgelöst

Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: Pigeonhole version 0.4.2 initializing
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: include: sieve_global_dir is not set; it is currently not possible to include `:global' scripts.
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: using the following location for user's Sieve script: /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: loading script /var/mail/timmeey/sieve/.dovecot.sieve;name=main script
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: script binary /var/mail/timmeey/sieve/.dovecot.svbin successfully loaded
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: binary save: not saving binary /var/mail/timmeey/sieve/.dovecot.svbin, because it is already stored
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): Debug: sieve: executing script from /var/mail/timmeey/sieve/.dovecot.svbin
Sep 26 20:52:30 h6666666 dovecot: lda(timmeey): sieve: msgid=<[email protected]>: stored mail into mailbox 'facebook'

UND es wurde beim Empfang der eigentlichen E-Mail ausgelöst (in 'Facebook' gespeichert)

Und hier haben wir den Testfilter

require ["fileinto","envelope"];    

if address :domain :contains ["From"] "facebookmail.com"
    {
        fileinto "facebook";
    }    

if envelope :contains ["To"] "[email protected]"
    {
        fileinto "pool/wichtig";
        stop;

    }

EDIT 2: Ich glaube, ich habe hier eine Regel gefunden. Wenn ich nach Adressen suche wie

address :contains ["To"] "[email protected]"

es funktioniert beim Testen UND mit tatsächlichen Mails.

Aber auf eine Hüllenbedingung testen

envelope :contains ["To"] "[email protected]"

es funktioniert nur beim siebtest aber nicht bei der eigentlichen mail.

Ich habe keine Idee warum. Dies ist immer noch ungelöst, aber ich könnte einen Weg finden, dies zu umgehen. Verwendet jemand den Envelope-Contetn zum Filtern? Ist es nur kaputt?

answer

Ich habe das gleiche gesehen. Ich habe es verwendet envelope :contains "To"und es hat mit Sieb-Test abgeglichen, aber nicht live. Wenn ich es so ändere, address :contains "To"wie Sie es vorschlagen, funktioniert es auch live. Das sieht nach einem Siebfehler aus.