Я только что перешел со старого 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"
как вы предлагаете, он работает и вживую. Это похоже на жучок сита.