Адреса, соответствующие условиям перезаписи раздела узла, также должны подвергаться перезаписи раздела пользователя. Взгляните на вывод набора правил MasqHdr из приведенного ранее теста. Адрес craig<@wrotethebook.com.> соответствует шаблону $-<@$М >$*. В адресе ровно одна лексема (craig) перед литералом <@, за которым следует значение М (wrotethebook.com), литерал .>, а затем нулевое число лексем.
Секция преобразования этого правила использует первую лексему ($1) исходного адреса в качестве ключа базы данных realnames, на что указывает синтакси с $:$( realnames $ 1 $) . Дл я адрес а craig<@wrotethebook.com> $ 1 имеет значение craig. Запрос по этому индексу, обращенный к базе данных realnames, приводимой в начале данного раздела, возвращает значение Crаig.Hunt. Это значение предваряет литерал <@, значение макроопределения М ($М) , литерал .>, а также значение $2, как предписывается секцией преобразования <@$М. >$2. В результате действия этого нового правила регистрационное имя пользователя в адресе преобразуется в настоящее имя и фамилию пользователя.
Когда это правило добавлено в наборы EnvFromSMTP и HdrFromSMTP, тест дает следующие результаты:
# sendmail -bt -Ctest.cf AODRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > /tryflags HS > /try esmtp craig Trying header sender address craig for mailer esmtp canonify input: craig Canonify2 input: craig Canonify2 returns: craig canonify returns: craig 1 input: craig 1 returns: craig HdrFromSMTP input: craig PseudoToReal input: craig PseudoToReal returns: craig MasqSMTP input: craig MasqSMTP returns: craig < e * LOCAL* > MasqHdr input: craig < @ *LOCAL* > MasqHdr returns: craig < @ wrotethebook . com > HdrFromSMTP returns: Craig Hunt < @ wrotethebook . com final input: Craig Hunt < @ wrotethebook . com final returns: Craig Hunt @ wrotethebook . com Rcode =0, addr = Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. > /tryflags ES > /try esmtp craig Trying envelope sender address craig for mailer esmtp canonify input: craig Canonify2 input: craig Canonify2 returns: craig canonify returns: craig 1 input: craig 1 returns: craig EnvFromSMTP input: craig PseudoToReal input: craig PseudoToReal returns: craig MasqSMTP input: craig MasqSMTP returns: craig < 0 *LOCAL* > MasqEnv input: craig < @ *LOCAL* > MasqHdr input: craig < * LOCAL* > MasqHdr returns: craig < @ wrotethebook . com . > MasqEnv returns: craig < @ wrotethebook . com . > EnvFromSMTP returns: Craig Hunt < @ wrotethebook . com . > final input: Craig Hunt < @ wrotethebook . com . > final returns: Craig Hunt @ wrotethebook . com Rcode = 0, addr = Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. > /quit