Назад | Перейти на главную страницу

sieve-test работает, но фактический фильтр иногда просто работает с dovecot

Я только что перешел со старого Ubuntu 10.4 VPS на новый блестящий Ubuntu 14.04.

После небольшой работы у меня все заработало, кроме голубятни с ситом.

Этот вопрос касается сообщений ситовой фильтрации, доставленных в dovecot через exim

Ожидаемое поведение: Exim получает почтовый спам, проверяет его и доставляет в dovecot через / var / run / dovecot / delivery ... Затем Dovecot применяет правила фильтрации sieve к этому сообщению и sieves сохраняет почту в соответствующей папке, определенной скриптом фильтрации.

Фактическое поведение: Exim доставляет почту в dovecot .... Фильтр сита применяется к почте

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=<CAPCXxMrefumm9oXpt9hOWVMRj1=2zS0-T9sCMEFK=JBSWSwcCg@xxxxxxx.xx>: stored mail into mailbox 'INBOX'

но в итоге кажется, что он игнорирует мои правила и просто сохраняет сообщение во входящем. НО иногда применяется фильтр, и сообщение сохраняется в соответствующей папке. но до сих пор я не нашел детерминированного правила, когда это работает, а когда нет.

Обычно я думаю, что мои правила нарушены. Но когда я тестирую фильтры сит-тестом

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

тест говорит, что все в порядке. (я скопировал источник почты из thunderbird в текстовый файл "mail1"

Вот пример, когда это сработало

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=<542441A1.9080009@owncloud.com>: stored mail into mailbox 'listen/owncloud-user'

Dovecot 2.2.9 Ubuntu 14.04

У меня тут реально нет идей ... На моем старом VPS все работало нормально. Я даже сервер перезагрузил ...

Заранее спасибо.

РЕДАКТИРОВАТЬ: Извините, это будет довольно многословно.

Здесь сначала заголовок, по которому должен сработать фильтр. (Я удалил весь прочий шум из почты и, очевидно, удалил некоторые личные данные, потому что я уже получил достаточно спама :-P Но это не должно влиять на фильтры

НЕ РАБОТАЕТ ПОЧТА

Таким образом, первое письмо запускает фильтр, когда я запускаю на нем тестовое сито. Он будет хранить его в 'pool / wichtig'

Return-path: <myAccount@campus.tu-berlin.de>
Envelope-to: pool@myServer.de
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

И здесь у нас есть выход из системы с того момента, когда я действительно получил письмо. Он не сработал ни по какой причине. (Фильтр настроен правильно

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: timmeey@h6666666.stratoserver.net (source: user@hostname) 
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=<5425FAAE.2040001@campus.tu-berlin.de>: stored mail into mailbox 'INBOX'

ПОЧТА, КОТОРАЯ РАБОТАЛА

И здесь у нас есть почта facebook, которая сработала и активировала фильтр во время тестирования И когда я получил фактическое письмо

Return-path: <xxx@xxx>
Envelope-to: gmx@myServer.de
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 <xxx@xxx>
From: "XXXX XXXXX" <notification+zj4ocz0csf2c@facebookmail.com>
Reply-to: Reply to comment <g+40tymmuw000zg3h03tug003o44m2mbkn000000gpc3xb2qd46@groups.facebook.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

Видеть? Это письмо было отправлено во время ТЕСТИРОВАНИЯ

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=<72dc28622cc1889240a83228bd509830@async.facebook.com>: stored mail into mailbox 'facebook'

И он сработал при получении фактического письма (сохранил его в 'facebook'

А вот и тестовый фильтр

require ["fileinto","envelope"];    

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

if envelope :contains ["To"] "pool@myServer.de"
    {
        fileinto "pool/wichtig";
        stop;

    }

РЕДАКТИРОВАТЬ 2: Думаю, я нашел здесь правило. Когда я проверяю адреса вроде

address :contains ["To"] "timmeey@someOtherServer.de"

он работает при тестировании И с реальными письмами.

Но проверка на какое-то состояние конверта

envelope :contains ["To"] "pool@myServer.de"

он работает только во время сит-теста, но не с реальной почтой.

Понятия не имею почему. Это все еще не решено, но я могу найти способ решить эту проблему. Кто-нибудь использует контекст конверта для фильтрации? Он просто сломан?

Я видел то же самое. Я использовал envelope :contains "To" и он сопоставлен с использованием сито-тест но не живи. Если я изменю его на address :contains "To" как вы предлагаете, он работает и вживую. Это похоже на жучок сита.