7. Изменения в Версии 8

Все нижеописанное суммирует изменения, произошедшие в sendmail с последней общедоступной версии (5.67). Полный список изменений содержится в файле RELEASE_NOTES в корневом каталоге поставки sendmail.

7.1. Кэширование Соединений

Вместо немедленного закрытия соединений SMTP, эти соединений кэшируются для возможного нового использования. Появление записей MX делает кэширование эффективным для списков рассылки; вдобавок, в обработке очереди может быть реальное увеличение производительности.

7.2. Вложение MX

Если два хоста с разными именами в одном сообщении случайно имеют один и тот же набор MX хостов, то сообщение к ним будет послано за одну транзакцию. Версия 8 обнаруживает это и пытается группировать сообщения.

7.3. Соответствие RFC 1123

Было сделано большое количество изменений, для того, чтобы сделать sendmail "условно соответствующим" (то есть, sendmail удовлетворяет всем предложениям "ДОЛЖНО" и большинству, но не всем, предложениям "ХОТЕЛОСЬ БЫ" в RFC 1123).

Основные районы изменений (числа являются номерами секций RFC 1123):

5.2.7

Быстрый ответ на команду RCPT.

5.2.8

Числовые IP адреса протоколируются в строках Received:.

5.2.17

Литерал собственного домена обрабатывается правильно.

5.3.2

Улучшен контроль над индивидуальными таймаутами.

5.3.3

Сообщения об ошибке посылаются как "From:<>".

5.3.3

Сообщения об ошибке никогда не посылаются к "<>".

5.3.3

Отсекается Route-addrs.

Области, в которых sendmail не "безусловно совместим":

5.2.6

Sendmail вносит изменения в заголовок.

5.2.10

Sendmail не всегда использует точный текст сообщения SMTP, как описано в RFC 821.

5.3.1.1

Sendmail не гарантирует одного единственного соединения на каждый хост во время обработки очереди.

5.3.1.1

Sendmail не всегда обеспечивает адекватного ограничения параллельности.

7.4. Поддержка ESMTP

Версия 8 включает поддержку и приема, и передачи Extended SMTP, как определено в RFC 1651 (основы) и RFC 1653 (РАЗМЕР); и ограниченную поддержку RFC 1652 (ТЕЛО).

7.5. Полная Восьмибитность

Предыдущие версии sendmail используют бит 0200 для квотирования. Эта версия избегает такого использования. Хотя, для совместимости с RFC 822, вы можете установить опцию "7" для получения обрезки до семи бит.

Индивидуальные почтовые программы все еще производить выдачу семибитных сообщений, используя флаг почтовой программы "7".

7.6. Пользовательская База Данных

Пользовательская база данных - это все еще экспериментальная попытка обеспечения поддержки единообразных имен для крупных узлов. Мы устанавливаем ее в Berkeley; будущие версии могут иметь значительные изменения.

7.7. Улучшенная Поддержка BIND

Поддержка BIND, в частности для записей MX, имела некоторое количество раздражающих "особенностей", убранных в этом выпуске. В частности, она более жестко привязывает, сервер имен к sendmail, так что правила просмотра сервера имен внесены прямо в sendmail.

7.8. Ключевые Файлы

Обобщенные ключевые файлы - это идея, взятая прямо из IDA sendmail (абсолютно отличной реализации). Они могут быть полезны на больших узлах. Версия 8 также понимает YP.

7.9. Многословные Классы

Классы теперь могут быть многословными. Например,

CShofmann.CS.Berkeley.EDU

Позволяет вам искать совпадения всей строки "hofmann.CS.Berkeley.EDU" используя одну единственную конструкцию "$=S".

7.10. Отложенные Расширения Макросов

Была адаптирована конструкция $&x от IDA.

7.11. Поддержка протокола IDENT

Поддерживается определенный в RFC 1413 протокол IDENT.

7.12. Устранение Багов

Устранены несколько небольших багов, типа связанных с экранирующими обратными чертами в комментариях.

7.13. Раздельная обработка Конверта и Заголовка

Так как строка From: передается отдельно от конвертного отправителя, они оба были сделаны видимыми; макрос $g устанавливается в конвертного отправителя во время обработки вектора аргументов почтовой программы, и в заголовочного отправителя во время обработки заголовков.

Так же имеется возможность определить раздельную обработку конверта и заголовка по почтовой программе. Аргументы SenderRWSet и RecipientRWset для почтовых программ могут быть указаны как конвертный/заголовочный для того, чтобы задать различные правила перезаписи для конвертных и заголовочных адресов.

7.14. Распространение Списка Владельцев на Конверт

Когда псевдоним имеет ассоциированное имя списка владельцев, этот псевдоним используется для изменения конвертного адреса отправителя. В результате, при возникновении ошибок, они будут возвращаться к этому владельцу.

7.15. Динамическое Выделение Заголовка

Было убрано ограничение на фиксированный размер заголовка.

7.16. Новые флаги Командной Строки

Был добавлен флаг -B для передачи информации о типе тела.

Был добавлен флаг -p для передачи информации о протоколе.

Для отладки был добавлен флаг -X для разрешения протоколирования всех входящих и выходящих из sendmail протоколов.

Флаг -O означает установку опций в длинном виде.

7.17. Расширенные флаги Командной Строки

Флаг -q может ограничить проход очереди определенными получателями, отправителями, или идентификаторами очереди используя -qRподстрока, -qSподстрока, или -qIподстрока соответственно.

7.18. Новые и Старые Типы Строк Конфигурации

Была добавлена строка K для декларирования преобразований баз данных.

Была добавлена строка V для декларирования уровня версии конфигурации.

Строка M имеет поле "D=", позволяющее вам переходить во временный каталог, пока работает эта почтовая программа. Она также имеет поле "U=", разрешающее вам назначить идентификаторы пользователя и группы, используемые для запуска почтовой программы.

7.19. Новые Опции

Было добавлено несколько новых опций, большинство для поддержки новых свойств, остальные для настройки, которую ранее можно было сделать только перекомпилированием. Подробно они описаны в Разделе 5.6. Вкратце,

b

Утверждает минимальное количество дисковых блоков.

C

Выставляет интервал контрольных точек.

E

Сообщение об ошибке по умолчанию.

G

Включает совпадения GECOS.

h

Максимальное количество пересылок.

j

Посылать ошибки в скрытом формате MIME.

J

Путь к файлу пересылки.

k

Размер кэша соединений.

K

Время жизни кэша соединений.

l

Включить заголовок Errors-To:. Эти заголовки нарушают RFC 1123; эта опция включена для обратной совместимости со старыми версиями sendmail.

O

Устанавливает входные опции демона SMTP, типа альтернативного порта SMTP.

p

Опции конфиденциальности.

R

Не обрезать route-addrs.

U

Спецификация пользовательской базы данных.

V

Аварийный хост "MX".

w

Метод обработки "лучший MX".

7

Не полностью восьмибитная работа.

8

Восьмибитный режим обработки.

7.20. Расширенные Опции

Опции r (таймаут чтения), I (использовать BIND), и T (таймаут очереди) были расширены для пропуска большей информации.

7.21. Новые Флаги Почтовой Программы

Было добавлено несколько новых флагов почтовых программ.

a

Попытаться при создании соединения использовать. Если эта опция не выставлена, sendmail все равно будет смотреть в приветственном сообщении другой стороны подсказку, известно ли там о ESMTP; этот флаг говорит, что нужно пробовать ESMTP, даже если в такой подсказки нет. Если команда EHLO (extended hello) не проходит, sendmail откатывается к старому SMTP.

A

Пробовать пользовательскую часть адресов для этой почтовой программы как псевдонимы.

b

Обеспечить пустую строку в конце всех сообщений.

c

Обрезать все комментарии от адресов; это должно использоваться в крайнем случае, при работе с капризными почтовыми программами.

g

Никогда не использовать нулевого отправителя в качестве конвертного отправителя, даже при работе по SMTP. Это также нарушает RFC 1123, но может быть необходимым, когда вы должны иметь дело с некоторыми несносными старыми хостами.

k

Выключить проверку закольцовывания в протоколе HELO; если вы ее установите, то могут возникнуть петли почтовой программы.

o

Всегда запускать почтовую программу в качестве получателя сообщения.

w

Этот пользователь должен иметь вхождение в файле паролей.

5

Если нет локальных псевдонимов, попробовать набор правил 5.

7

Обрезать весь вывод до 7 бит.

:

Проверить на наличие файлов :include:.

|

Проверить на наличие адресов |program.

/

Проверить на наличие адресов /file.

@

Проверить этого пользователя в пользовательской базе данных.

7.22. Длинные Имена Опций

Все опции могут быть определены длинными именами, а некоторые новые опции могут быть определены только длинными именами.

7.23. Новые Предопределенные Макросы

Предопределены следующие макросы:

$k

Имя узла UUCP, номинально из вызова uname(2).

$m

Доменная часть полного имени нашего хоста.

$_

Адрес отправителя по RFC 1413.

7.24. Новая Лексема LHS

Версия 8 разрешает $@, в левосторонней части строки "R", соответствовать нулевым лексемам. Предназначено для совпадения с нулевым вводом.

7.25. Большие Умолчания

Версия 8 имеет до 100 наборов правил вместо 30. Рекомендуется резервировать наборы правил 0-9 для специального использования в будущих выпусках sendmail'ов.

Общее количество используемых записей MX может быть увеличено до 20.

Количество сообщений в очереди, обрабатываемых за один раз было увеличено с 600 до 1000.

7.26. Другие Параметры Настройки по Умолчанию

В версии 8 параметры по умолчанию настройки очереди изменились так, чтобы сделать количество получателей более важным, чем размер сообщения (для небольших сообщений). Это вполне разумно, если вы имеете достаточно быстрые соединения.

7.27. Автоматическое Квотирование Адреса

Ранее, синтаксис "Полное Имя <адрес email >" мог выдавать некорректный протокольный вывод, если "Полное Имя" имело специальные символы типа точки. Эта версия проставляет кавычки вокруг таких имен.

7.28. Символические Имена Для Почтовой Программы Ошибок

В часть $@ почтовой программы $#error было встроено несколько имен.

7.29. SMTP VRFY Не Расширяется

Предыдущие версии sendmail считали VRFY и EXPN одним и тем же. В этой версии, VRFY не расширяет псевдонимы и не следует файлам .forward. EXPN все еще делает все это.

В качестве оптимизации, если у вас по умолчанию режим приема с постановкой в очередь, или приема в фоне, команда RCPT не будет трогать псевдонимы или файлы .forward. Они будут затронуты при обработке очереди.

7.30. [IPC] Почтовые Программы Позволяют Множество Хостов

Когда адрес разрешается к почтовой программе, имеющей "[IPC]" в качестве "Path", часть $@ (имя хоста) может быть списком хостов, разделенных двоеточиями вместо одного имени хоста. Это попросит sendmail просмотреть список на первое точно имеющееся вхождение, даже если это запись MX. Это предназначено для маршрутизации внутреннего трафика через внутренние сети без выдачи записи MX в сеть. Для индивидуальных целей расширение MX все еще производится.

7.31. Псевдонимы Расширены

Реализация была соединена с преобразованиями. Помимо всего прочего, теперь поддерживаются псевдонимы, основанные на NIS.

7.32. Улучшение Переносимости и Безопасности

Было сделано большое количество внутренних изменений, направленных на улучшение переносимости.

Было произведено несколько настроек для увеличения коэффициента параноидальности.

7.33. Разнообразные Изменения

Sendmail пишет файл /etc/sendmail.pid с текущим идентификатором процесса демона SMTP.

Два человека, использующие одну и ту же программу в их файлах .forward считаются различными, так что устранение дубликата не удалит одного из них.

Программа mailstats печатает имена почтовых программ и получает местонахождение файла sendmail.st из /etc/sendmail.cf.

Было исправлено множество небольших багов, типа обработки обратных слешей в кавычках.

Был добавлен крючок (набор правил 5) для того, чтобы было возможно перезаписать локальные адреса после псевдонимизирования.