У меня для всех моих недействительных входящих на новые адреса есть такой маршрут.
виртуальные_алиасы: драйвер = перенаправление разрешить_отсрочку разрешить_неудачу домены = lsearch;/etc/userdomains пользователь = "${lookup \ {$домен} \ lsearch{/etc/userdomains} \ {$значение} \ }" группа = "${lookup \ {$домен} \ lsearch{/etc/userdomains} \ {$значение} \ }" адрес_данных = \ "маршрутизатор=$имя_маршрутизатора \ перенаправление=${цитата:${поиск \ {$local_part} \ lsearch{${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch{/etc/userdomains}{$value}}}{$value}}}}/etc/${perl{untaint}{$domain}}/aliases} \ }}" данные = ${extract{redirect}{$address_data}} файл_транспорт = адрес_файла домашний_каталог_маршрутизатора = ${extract \ {5} \ {::} \ {${поиск пароля \ {${поиск \ {$domain_data} \ lsearch{/etc/userdomains} \ {$значение} \ }} \ {$значение} \ }} \ } локальная_часть_суффикс = +* локальная_часть_суффикс_необязательный повторить_использование_локальной_части невидимый пользовательпереадресация: драйвер = перенаправление разрешить_фильтр разрешить_неудачу запретить_фильтр_запуск запретить_фильтр_perl запретить_фильтр_поиск запретить_фильтр_чтение_файла запретить_фильтр_чтение_сокета проверка_предка проверить_локальный_пользователь домены = $primary_hostname нет_expn require_files = "+$home/.forward" условие = "${extract{size}{${stat:$home/.forward}}}" файл = $home/.forward файл_транспорт = адрес_файла reply_transport = адрес_ответа каталог_транспорт = адрес_каталог пользователь = $local_part_data группа = $local_part_data нет_проверки
Файл как пользователь:[email protected], пользователь *: ::fail:Любое сообщение
Здесь мой обычный форвард работает, но не этот *
решение1
просто используйте nwildlsearch
вместо lsearch
и поместите *
запись в конец файла.
решение2
Так и должно быть.
catchall:
driver = redirect
domains = lsearch;/etc/userdomains
address_data = \
"router=$router_name \
redirect=${quote:${lookup \
{invalid_accept} \
lsearch{${extract{5}{::}{${lookup passwd{${lookup{$domain}lsearch{/etc/userdomains}{$value}}}{$value}}}}/etc/${perl{untaint}{$domain}}/aliases} \
}}"
data = ${extract{redirect}{$address_data}}
allow_fail
Это идеальный способ и в файле он должен выглядеть так
invalid_accept : :fail:Whatever act you want I shown here failed act