после того, как я не смог заставить свой сервер 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
Вы переписываете не в то время. Параметр перезаписи 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