
Тестирование sendmail.cf
377
тываем адрес отправителя из заголовка (HS). Команда /try предписывает
sendmail обработать адрес для передачи через конкретную почтовую про-
грамму. В данном примере адрес электронной почты craig обрабатывается
для почтовой программы esmtp. Сначала мы обрабатываем его как адрес от-
правителя из заголовка, а затем как адрес отправителя с конверта. По этому
тесту можно определить, что значение из макроопределения М используется
для подстановки адреса отправителя в заголовке сообщения, но не адреса от-
правителя на конверте.
В результате проведенных тестов мы видим, что значение макроопределе-
ния М заменяет имя узла в адресе отправителя из заголовка сообщения - что
нам и требовалось. Имя узла в адресе отправителя на конверте не изменяет-
ся. Обычно это приемлемо. Однако мы хотим создать в точности такие на-
стройки, как в примере ш4. Команда FEATURE(masquerade_envelope) из
примера т4 приводит к изменению адреса отправителя на конверте. Следова-
тельно, в наших настройках также должна происходить подстановка.
Разница в обработке адресов сообщения и конверта состоит в том, что пер-
вые обрабатываются набором правил HdrFromSMTP, тогда как вторые - на-
бором правил EnvFromSMTP. Тесты показывают, что оба набора правил ис-
пользуют пересекающиеся наборы правил. Есть одно расхождение: набор
правил HdrFromSMTP вызывает набор правил MasqHdr, а набор правил
EnvFromSMTP вызывает набор MasqEnv. Тесты также показывают, что на-
бор MasqHdr выполняет для адреса отправителя сообщения подстановку в
соответствии с нашими пожеланиями, тогда как MasqEnv не выполняет та-
кую подстановку для адреса отправителя с конверта. Ниже приводится код
test.сf для наборов правил MasqEnv:
Очевидно, набор правил MasqEnv не делает то, что нам нужно, в отличие от
набора MasqHdr. Быстрое изучение набора MasqEnv позволяет понять, что
он не содержит ни единой ссылки на макроопределение М. Но при этом в са-
мом его начале присутствует комментарий «do masquerading», благодаря
которому можно догадаться, что здесь должно выполняться сокрытие для
адреса. Решение нашей задачи - добавить к набору правил MasqEnv строку,
вызывающую набор правил MasqHdr, который в действительности и произ-
водит необходимую обработку. Измененный набор правил показан ниже: