Команды М определяют программы доставки почты, с которыми работает sendmail. Синтаксис команды:

Mname, {field=value}

name - произвольное внутреннее имя, используемое sendmail для описания данной почтовой программы. Выбор имени не имеет значения, если в файле sendmail.cf это имя используется последовательно для ссылки на одну почтовую программу. Так, почтовая программа для доставки SMTP-почты в пределах локального домена может называться smtp в одной системе и ether в другой. Назначение обеих программ одинаково, различаются только имена.

Свобода выбора имени ограничивается рядом исключений. Почтовая программа, осуществляющая доставку локальной почты пользователей той же машины, должна называться local, и определение почтовой программы local должно присутствовать в файле sendmail.cf. Еще три специальных имени почтовых программ:

  • prog

Доставляет почту программам.

  • *file*

Записывает почту в файлы.

  • *include*

Направляет почту в списки : include:.

Из перечисленных почтовых программ только prog имеет определение в файле sendmail.cf. Двум другим соответствуют внутренние определения sendmail.

Имя почтовой программы может быть любым, но обычно имена одинаковы во всех системах, поскольку определения почтовых программ в sendmail.cf генерируются из стандартных макроопределений ш4. В созданной ранее настройке linux.mc макроопределение MAILER(loeal) отвечает за определения почтовых программ prog и local, а макроопределение MAILER(smtp) - за определения smtp, esmtp, smtp8, dsmtp и relay. В любой системе, с которой вам придется работать, будет, вероятно, тот же набор имен почтовых программ.

За именем почтовой программы следует список пар field=value, разделенных запятыми. Эти пары определяют характеристики почтовой программы. Односимвольные идентификаторы полей (field) и связанные с ними значения описаны в табл. 10.2. Большинству почтовых программ требуются не все описанные поля.


Поле Значение Содержимое Пример
Р Path Путь к почтовой программе P=/bin/mail
F Flags Флаги sendmail для данной почтовой программы F=lsDFMe
S Sender Наборы правил для адресов отправителей S=10
R Recipient Наборы правил для адресов получателей R=20
А Argv Вектор аргументов почтовой программы A=sh -с $u
Б Eol Символ конца строки для почтовой программы E=\r\n
М Maxsize Максимальная длина сообщения М=100000
L Linelimit Максимальная длина строки L=990
D Directory Рабочий каталог почтовой программы prog D=$z:/
и Userid Идентификаторы пользователя и группы, используемые для исполнения почтовой программы U=uucp:wheel
N Nice Значение приоритета, используемое при исполнении почтовой программы N=10
С Charset Тип содержимого для 8-битных символов MIME C=iso8859-l
т Type Информация типа для ошибок MIME T=dns/rfc822/smtp

Поле Path (Р) содержит полное имя программы доставки почты либо строку [IPC]. Определение, в котором указано Р=[1РС], предписывает использовать sendmail для доставки почты по SMTP. Путь к программе доставки почты для каждой конкретной системы зависит от того, где хранится та или иная программа. Прежде чем вносить изменения в поле Path, уточните, где хранятся программы. Если вы используете файл sendmail.cf с другой машины, убедитесь, что пути к почтовым программам верны для данной системы. Если вы используете ш4 для создания настроек, пути верны изначально.

Поле Flags (F) содержит флаги sendmail для данной почтовой программы, а именно флаги почтовых программ, упоминавшиеся ранее в этой главе, в разделе «Определение почтовых заголовков». Однако флаги почтовых программ не просто управляют вставкой заголовков. Флагов существует очень много. Описания флагов содержатся в приложении Е.

Поля Sender (S) и Recipient (R) указывают наборы правил, используемые для переписывания адресов отправителя и получателя для данной почтовой программы. Каждый набор правил обозначается по номеру. Мы еще обсудим наборы правил более подробно в этой главе, а к значениям S и R будем обращаться при отладке настроек sendmail.


Поле Argv (А) определяет вектор аргументов, передаваемых почтовой программе. Оно содержит, помимо прочего, расширения макроопределений: имя пользователя-получателя (а именно $и), имя узла получателя ($h), а также адрес From отправителя ($f). Подстановка значений макроопределений выполняется до передачи вектора аргументов почтовой программе.

Поле End-of-line (Е) определяет символы, используемые для обозначения конца строки. Комбинация возврата каретки и перевода строки (CRLF) по умолчанию используется для почтовых программ SMTP.

Поле Maxsize (М) определяет максимальный размер сообщения, которое может быть обработано данной почтовой программой, в байтах. Это поле используется чаще всего в определениях почтовых программ UUCP.

Поле Linelimit (L) определяет максимальную длину строки в байтах, допустимую в письме, передаваемом через данную почтовую программу. Данное поле появилось в sendmail V8. Предыдущие версии sendmail ограничивали длину строки 80 символами, поскольку таково было ограничение почты SMTP до появления расширений MIME.

Поле Directory (D) определяет рабочий каталог для почтовой программы prog. Поле может содержать несколько имен каталогов, разделенных двоеточиями. Пример в табл. 10.2 предписывает prog использовать исходный каталог получателя (таково значение внутреннего макроопределения $z). Если указанный каталог недоступен, программе следует использовать корневой (/) каталог.

Поле Userid (U) используется для указания умолчаний идентификаторов пользователя и группы, с полномочиями которых выполняется почтовая программа. Например, U=uucp: wheel указывает, что почтовая программа должна выполняться с полномочиями пользователя ииср и группы wheel. В отсутствие значения в поле Userid используется значение параметра DefaultUser.

Используйте Nice (N), чтобы изменять значение nice, с которым работает почтовая программа. Значение nice определяет приоритет почтовой программы для планировщика задач. Поле используется редко. Более подробные сведения о допустимых значениях вы можете почерпнуть из страниц руководства (man), посвященных nice.

Последние два поля используются только для почты MIME. Charset (С) определяет набор символов; значение используется в заголовке Content-type при преобразовании 8-битных сообщений в формат MIME. В отсутствие определения Charset используется значение параметра DefaultCharSet. Если и этот параметр не определен, по умолчанию используется значение unknown-8bit.

Поле Туре (Т) определяет информацию типа, используемую в MIME-сообщениях об ошибках. Информация MIME-типа определяет тип агента передачи почтовой программы, тип почтового адреса и тип сообщений об ошибках. По умолчанию принимает значение dns/rfc822/smtp.