
358
Глава 10. sendmail
Многие адреса, такие как hostmaster@apnic.net и craigh@ora.com, соответст-
вуют этому шаблону, однако далеко не все. Так, адрес rebecca.hunt@wrotet
hebook.com шаблону не соответствует, поскольку оператору @ предшествуют
три лексемы: rebecca,., а также hunt. Следовательно, не выполняется требо-
вание наличия ровно одной лексемы, связанное с метасимволом $-. Мета
символы, макроопределения и литералы позволяют конструировать шабло
ны для поиска адресов электронной почты любого типа.
Если адрес соответствует шаблону, подстроки адреса, найденные метасимво-
лами, сохраняются в неопределенных лексемах (indefinite tokens). Найден-
ные строки называются неопределенными лексемами, поскольку могут со-
держать по нескольку значений лексем. Неопределенные лексемы нумеру-
ются последовательно в соответствии с положением в шаблоне метасимво-
лов, которому они соответствуют. Иначе говоря, неопределенная лексема,
полученная по соответствию первого метасимвола, называется $1; соответ-
ствие для второго символа называется $2; для третьего - $3 и т. д. Сопостав-
ление адреса becky@rodent.wrotethebook.com с шаблоном $-@$+ привело к соз-
данию двух неопределенных лексем. Первая из них обозначается как $1 и
содержит одну лексему, becky, соответствующую символу $-. Вторая неопре-
деленная лексема носит имя $2 и содержит пять лексем - rodent, ., wrotet-
hebook, ., а также com, - соответствующих символу $+. На неопределенные
лексемы, созданные при поиске по шаблону, можно ссылаться по именам
($1, $2 и т. д.) при переписывании адреса.
Некоторые из символов, описанных в табл. 10.3, используются только в осо-
бых случаях. Символ $@ используется обычно отдельно для поиска пустого
адреса. Символы сравнений с картами NIS могут использоваться только в
операционной системе Sun с программой sendmail из дистрибутива системы.
В следующем разделе мы увидим, что системы, использующие стандартную
версию sendmail, могут работать с картами NIS, но только в части преобразо-
ваний, а не поиска по шаблонам.
Преобразование адреса
Поле преобразования в правой части правила подстановки определяет фор-
мат, в который переписывается адрес. Формат определяется при помощи тех
же элементов, что и шаблон: литералов, макроопределений и специальных
метасимволов. Литералы в преобразованиях попадают в новый адрес без из-
менений. Для макроопределений выполняется подстановка. Метасимволы
решают специальные задачи. Метасимволы преобразований и их функцио-
нальность описаны в табл. 10.4.
Таблица 10.4. Метасимволы преобразований