Нет подадреса: деталь детали в тесте конверта
Я пытаюсь отфильтровать письма по субадресу: детализация деталей в скриптах сит.
Цель - использование шаблонов регулярных выражений, как в этом простом тестовом примере:
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}