Я пытаюсь фильтровать письма по субадресу: детали в скриптах сита .
Целью является использование шаблонов регулярных выражений, как в этом простом тестовом примере:
if envelope :detail :regex "to" ["^test$"]{
fileinto "Social";
stop;
}
if envelope :detail ["to"] ["test"]{
fileinto "Social";
stop;
}
Ни один из сценариев не работает.
Если я включу трассировку в моей конфигурации dovecot, я вижу, что адрес, sieve пытается Извлечение детали из больше не содержит детали детали, в то время как заголовок «Кому», используемый для проверки заголовка в том же скрипте, содержит.
12: header test
12: starting `:regex' match with `i;ascii-casemap' comparator:
12: extracting `to' headers from message
12: matching value `"user+test@domain.net" <user+test@domain.net>'
12: with regex `.*blogs' [id=0] => 0
12: finishing match with result: not matched
12: jump if result is false
12: jumping to line 18
18: envelope test
18: starting `:regex' match with `i;ascii-casemap' comparator:
18: getting `to' part from message envelope
18: extracting `detail' part from address `user@domain.net'
18: finishing match with result: not matched
18: jump if result is false
18: jumping to line 22
22: envelope test
22: starting `:is' match with `i;ascii-casemap' comparator:
22: getting `to' part from message envelope
22: extracting `detail' part from address `user@domain.net'
22: finishing match with result: not matched
22: jump if result is false
22: jumping to line 32
Итак, какие могут быть причины, по которым dovecot сокращает детализацию конверта?
Что ж, предложения по вопросам, связанным с ошибками сервера, наконец привели меня на правильный путь.
Как было предложено в этом решении , проблема не в голубятне или решетке, а в постфиксе . Поэтому я изменил следующую строку в моем postfix master.cf, чтобы отправлять не только пользователя и домен, но и исходный адрес получателя.
# old
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
# new
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${original_recipient}