Назад | Перейти на главную страницу

Перезапись адреса 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

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

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

user1@domain1.com user1@newcorp.com SFfrs

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

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

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

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

Вы переписываете не в то время. В S Параметр rewrite определяет перезапись входящих адресов по мере их получения. Шаблон должен соответствовать всему адресу, полученному в 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-addresses. Хотя он обычно поддерживается, он используется редко. Вышеупомянутые правила будут работать, если все ваши отправители находятся в локальном (ых) домене (ах), и их следует переписать для всех локальных доменов.

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

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

В качестве альтернативы вы можете сопоставить адреса с указанием домена, например user@example.com в /etc/aliases файл, используя правило вроде:

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

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

exim -brw ph10@exim.workshop.example

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

local_user:  new_user@example.net