Команда /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, который в действительности и производит необходимую обработку. Измененный набор правил показан ниже:
Отладка файла sendmail.cf - это скорее искусство, нежели наука. Решение о добавлении в набор правил MasqEnv строки вызова набора MasqHdr - немногим более чем догадка. И тестирование - единственный способ проверить ее. Мы повторно выполнили sendmail -bt -Ctest.cf, чтобы протестировать адреса craig, craig@rodent и craig@localhost при помощи команды /try esmtp. Все тесты завершились успешно - переписыванием различных исходных адресов в конечный адрес Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.. Затем мы повторили тест отправки почты командой sendmail -v -t -Ctest. cf. Только когда все тесты отработали успешно, мы окончательно уверились в своей догадке и можем переходить к следующей задаче - подстановке имени и фамилии пользователя вместо регистрационного имени пользователя в адресе электронной почты.
- << Назад
- Вперёд