Postfix централизованная ретрансляция - Как скрыть исходящий сервер?
У меня есть центральный сервер ретрансляции почты и 4 других сервера, которые отправляют почту через первый.
Когда я отправляю почту с одного из "подчиненных" серверов, исходящая почта прибывает в пункт назначения с некоторыми ссылками на исходный сервер, который ее создал.
Например, последнее письмо включает в себя ретранслятор:
Received: from mail.myserver.com (mail.myserver.com. [178.63.10.61])
Но и исходный сервер:
Return-Path: <mywebsite@www1.myserver.com>
Я хотел бы скрыть все ссылки на второй и показывать только имя хоста последнего реле.
Я уже был в состоянии скрыть некоторые ссылки, используя регулярные выражения с header_checks, но некоторые другие, такие как Return-path, кажутся не стираемыми.
2 ответа
Помимо решения, в котором вы добавляете адрес отправки в код приложения, вы также можете рассмотреть возможность использования постфикса для вас. Документация Postfix содержит обзор информации о перезаписи при получении адреса README, получение.
Другое, возможно, более простое решение, это использование канонической таблицы на почтовом сервере, которая затем будет включать в себя следующее отображение:
mywebsite@www1.myserver.com mywebsite1@myserver.com
Последний заменит каждый случай mywebsite@www1.myserver.com на mywebsite1@myserver.com во всех заголовках адресов.
Return-Path
заголовок добавляется передающим адаптером MTA или исходным механизмом генерации (PHP, Java и т. д.) и обычно используется при сбрасывании сообщений sendonb.
Вы можете настроить свои "подчиненные" серверы на использование определенного адреса, первый пример ниже использует sendmail
Второй использует PHP:
sendmail -t -i -f webmaster@yourdomain.com
mail ($ to, $ subject, $ message, $ headers, "-faccount@domain.com");
Источники: RFC 4021, раздел 2.1.22 и RFC 822, раздел 4.3.1.