Семантика Наборов Правил Перезаписи
Существует пять наборов правил перезаписи, имеющих специфическую семантику. Взаимоотношения четырех из них изображены на Рис.1.
+---+ -->| 0 |-->resolved address / +---+ / +---+ +---+ / --->| 1 |-->| S |-- +---+ / +---+ / +---+ +---+ \ +---+ addr-->| 3 |-->| D | ----->| 4 |-->msg +---+ +---+ \ +---+ +---+ / +---+ --->| 2 |-->| R |-- +---+ +---+
Рис.1. Семантика набора перезаписи
D - Добавка домена отправителя
S - Перезапись отправителя в зависимости от почтовой программы
R - Перезапись получателя в зависимомти от почтовой программы
Набор правил 3 должен превратить адрес в "каноническую форму". Эта форма должна иметь основной синтаксис: local-part@host-domain-spec
Набор правил 3 применяется sendmail'ом до любых изменений в любом адресе.
Если не определено ни одного знака "@", то hostdomain-spec может быть добавлен (квадратик "D" на Рис.1.) из адреса отправителя (если в определениях почтовых программ для соответствующей отсылающей программы выставлен флаг C).
Набор правил 0 применяется после набора правил 3 к адресу, определяющему получателей. Он должен быть разделен на тройку {mailer, host, user}. Mailer должен быть определен в определениях почтовых программ в файле конфигурации. Host определяется макросом $h для использования в расширенном argv указанной почтовой программы.
Правила 1 и 2 применяются ко всем адресам отправителей и получателей соответственно. Они применяются до любого указания в определении почтовой программы. Их никогда не нужно проверять.
Набор правил 4 применяется ко всем адресам в сообщении. Он обычно используется для перевода из внутренней формы во внешнюю.
В добавок, набор правил 5 применяется ко всем локальным адресам (в частности, к тем, которые разрешаются в почтовой программе с выставленным флагом "F=5") не имеющим псевдонимов. Это последняя ловушка для локальных имен.