Перезапись адреса eximʻa не работает

после того, как я не смог заставить свой сервер Postfix выполнить правильную перезапись, я попытался использовать вместо этого сервер Exim, но у меня снова не получается простая перезапись.

Я использовал конфигурацию по умолчанию, добавил в него свои переменные и создал новый маршрутизатор для доставки на оба моих локальных почтовых сервера в моей частной сети. Этот маршрутизатор является первым в производственной линии и настроен следующим образом:

manualroute_domains:
  driver = manualroute
  domains = lsearch;/etc/exim/relay_hosts
  route_data = ${lookup{$domain}lsearch{/etc/exim/relay_hosts}}
  transport = remote_smtp
  verify_recipient = false
  verify_sender    = false

Testmail из домена 1 в домен 2 был успешно доставлен.

Теперь я начал создавать свое первое правило перезаписи в блоке «начать перезапись»:

user1@domain1.com user1@newcorp.com SFfrs

Тест с exim -brwuser1@domain1.com приводит в точности так, как я хочу, чтобы мой домен был переписан, но когда я пытаюсь отправить письмо с домена domain1, используя шлюз в качестве смарт-хоста, оно всегда получается с окончанием domain1.com и новый адрес нигде не найден в заголовке письма.

Возможно ли, что мне нужно где-то заявить об использовании перезаписи в моем маршрутизаторе? Я хочу добавить условия для моей перезаписи, поэтому использование header_rewrite на маршрутизаторе для меня не вариант.

Заранее благодарю вас за любые идеи или мысли относительно моей конфигурации!

С с уважением TooCloudy

1
задан 24 April 2017 в 00:05
1 ответ

Вы переписываете не в то время. Параметр перезаписи S определяет перезапись входящих адресов по мере их получения. Шаблон должен соответствовать всему адресу, полученному в команде MAIL FROM . Вероятно, вы захотите переписать, когда заголовки читаются во время обработки данных.

Имейте в виду, что перезапись адресов может вызвать меры по предотвращению спама. В частности, записи SPF для домена, скорее всего, не будут включать ваш хост в качестве разрешенного отправителя.

Попробуйте использовать правило перезаписи, например:

*@example.com      $1@example.net       Ffrs

Если вы хотите перезаписать отдельные адреса, используйте / etc / email-aliases , в котором будет использоваться одно из этих правил перезаписи.

*@+local_domains "${lookup{${local_part}}lsearch{/etc/email-addresses}\
               {$value}fail}" Ffrs
*@ETC_MAILNAME "${lookup{${local_part}}lsearch{/etc/email-addresses}\
               {$value}fail}" Ffrs

Вам может потребоваться создайте / etc / email-адреса . Хотя он обычно поддерживается, он используется редко. Вышеупомянутые правила будут работать, если все ваши отправители находятся в локальном (ых) домене (ах), и их следует переписать для всех локальных доменов.

Если вам нужно переписать в зависимости от домена, а также от local_part, вам необходимо настроить виртуальные домены. Если у вас есть определенный список доменов virtual_domains , следующее правило перезаписи должно быть перезаписано на основе файлов формата псевдонима электронной почты в / etc / exim4 / virtual с такими именами, как email-example .com .

*@+virtual_domains "${lookup{${local_part}}lsearch{/etc/exim4/virtual/email-${domain}}\
               {$value}fail}" Ffrs

В качестве альтернативы вы можете сопоставить квалифицированные адреса домена, такие как (скрытые), в файле / etc / aliases , используя такое правило, как:

*@+local_domains "${lookup{${local_part}@${domain}}lsearch{/etc/email-addresses}\
               {$value}fail}" Ffrs

Вы можете проверить свои правила перезаписи, как описано в E Спецификация xim4 перезапишите главу с помощью такой команды:

exim -brw ph10@exim.workshop.example

Псевдонимы и etc-aliases должны содержать строки вроде:

local_user:  new_user@example.net
1
ответ дан 3 December 2019 в 23:31

Теги

Похожие вопросы