ОБНОВИТЬ: Спасибо за ответы на этот вопрос, но я собираюсь отказаться от exim и попробовать Postfix.
Пример:
*@domain-a.com
> whatever@gmail.com
*@domain-b.com
> mr_bob@hotmail.com
*@domain-c.com
> fred@flintstone.com
Я пробовал добавить в /etc/exim4/exim4.conf.template
но режиссер не подходит:
domaina_director:
driver = redirect
domains = dsearch;/etc/exim4/fwd_domains
data = ${lookup{$local_part}lsearch{/etc/exim4/fwd_domains/$domain}}
no_more
Я создал каталог /etc/exim4/fwd_domains
и в этом файле domain-a.com
:
# cat domain-a.com
*: whatever@gmail.com
Обновить: Я не уверен, что этот синтаксис правильный. Что еще более важно, кажется, что моего режиссера не подбирают до этого момента.
Бегать update-exim4.conf
& перезапустить exim4.
Отправить тестовое электронное письмо:
# mail fred@domain-a.com
Subject: jdhfdjks
dsfhjdshf
.
Cc:
Это появляется в /var/log/exim4/mainlog
:
2010-07-07 22:21:51 1OWd03-0002Zv-Kx <= root@primarydomain U=root P=local S=332
2010-07-07 22:21:51 1OWd03-0002Zv-Kx ** fred@domain-a.com: Unrouteable address
2010-07-07 22:21:51 1OWd03-0002Zx-MB <= <> R=1OWd03-0002Zv-Kx U=Debian-exim P=local S=1111
2010-07-07 22:21:51 1OWd03-0002Zv-Kx Completed
2010-07-07 22:21:51 1OWd03-0002Zx-MB => /var/mail/mail <root@primarydomain> R=mail4root T=address_file
2010-07-07 22:21:51 1OWd03-0002Zx-MB Completed
Мой директор не запускается, и электронная почта попадает в почтовый ящик root. Любые идеи?
Используйте поиск по шаблону "lsearch *" вместо "lsearch". Это будет соответствовать подстановочным знакам.
domain_aliases: driver = redirect domains = dsearch;/etc/exim4/fwd_domains data = ${lookup{$local_part}lsearch*{/etc/exim4/fwd_domains/$domain}} no_more
В качестве альтернативы вы можете поместить свои псевдонимы в / etc / aliases и использовать такой маршрутизатор. Вы можете изменить параметр доменов в соответствии с вашей конфигурацией. Вышеупомянутый dseach будет уместным.
domain_aliases: driver = redirect domains = ! +local_domains : +relay_to_domains data = ${lookup{$local_part@domain}lsearch*{/etc/aliases}} no_more
Для этого требуются псевдонимы вроде:
*@domain-a.com : whatever@gmail.com *@domain-b.com : mr_bob@hotmail.com *@domain-c.com : fred@flintstone.com
Попробуйте более инвазивную отладку:
exim -bv -d+verify fred@domain-a.com
exim -bt -d+route fred@domain-a.com
Ваша конфигурация выглядит вменяемой (даже учебной), требуется более подробная информация о сбоях.
Это, вероятно, настолько очевидно, что вы уже проверили, но никогда не знаете.
Вы случайно не пользуетесь схемой раздельной конфигурации?
В этом случае вы должны игнорировать exim4.conf.template и вместо этого использовать /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs.
На Документы Exim есть что-то о lsearch
не расширяя подстановочные знаки и используя wildlsearch
чтобы раскрыть ключи перед поиском. Я думаю, что то, что вы делаете сейчас, будет соответствовать только адресу *@domain-a.com
. Взгляните на примеры в документации. Кроме того, в качестве универсального электронного письма маршрутизатор, вероятно, должен быть после всех других значимых маршрутизаторов, иначе он будет перехватывать действительные электронные письма до их доставки.
Ваш директор должен находиться выше локального маршрутизатора доставки.