Нет подадреса: деталь детали в тесте конверта

Я пытаюсь отфильтровать письма по субадресу: детализация деталей в скриптах сит.

Цель - использование шаблонов регулярных выражений, как в этом простом тестовом примере:

if envelope :detail :regex "to" ["^test$"]{                                                                                                             
  fileinto "Social";
  stop;
}
if envelope :detail ["to"] ["test"]{
  fileinto "Social";
  stop;
}

Ни один из обоих скриптов не работает.

Если я включу трассировку в своей конфигурации dovecot, то увижу, что адрес, из которого sieve пытается извлечь детали, больше не содержит детализацию, в то время как заголовок "to" используется для проверки заголовка в том же скрипте делает.

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 вырубает детали для конвертов?

1 ответ

Решение

Ну, предложения по вопросам, связанным с серверными ошибками, наконец-то вывели меня на правильный путь.

Как предполагается в этом решении, проблема не в dovecot или sieve, а в postfix. Поэтому я изменил следующую строку в своем 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}
Другие вопросы по тегам