Все нижеописанное суммирует изменения, произошедшие в sendmail с последней общедоступной версии (5.67). Полный список изменений содержится в файле RELEASE_NOTES в корневом каталоге поставки sendmail.
Вместо немедленного закрытия соединений SMTP, эти соединений кэшируются для возможного нового использования. Появление записей MX делает кэширование эффективным для списков рассылки; вдобавок, в обработке очереди может быть реальное увеличение производительности.
Если два хоста с разными именами в одном сообщении случайно имеют один и тот же набор MX хостов, то сообщение к ним будет послано за одну транзакцию. Версия 8 обнаруживает это и пытается группировать сообщения.
Было сделано большое количество изменений, для того, чтобы сделать 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 не всегда обеспечивает адекватного ограничения параллельности. |
Версия 8 включает поддержку и приема, и передачи Extended SMTP, как определено в RFC 1651 (основы) и RFC 1653 (РАЗМЕР); и ограниченную поддержку RFC 1652 (ТЕЛО).
Предыдущие версии sendmail используют бит 0200 для квотирования. Эта версия избегает такого использования. Хотя, для совместимости с RFC 822, вы можете установить опцию "7" для получения обрезки до семи бит.
Индивидуальные почтовые программы все еще производить выдачу семибитных сообщений, используя флаг почтовой программы "7".
Пользовательская база данных - это все еще экспериментальная попытка обеспечения поддержки единообразных имен для крупных узлов. Мы устанавливаем ее в Berkeley; будущие версии могут иметь значительные изменения.
Поддержка BIND, в частности для записей MX, имела некоторое количество раздражающих "особенностей", убранных в этом выпуске. В частности, она более жестко привязывает, сервер имен к sendmail, так что правила просмотра сервера имен внесены прямо в sendmail.
Обобщенные ключевые файлы - это идея, взятая прямо из IDA sendmail (абсолютно отличной реализации). Они могут быть полезны на больших узлах. Версия 8 также понимает YP.
Классы теперь могут быть многословными. Например,
CShofmann.CS.Berkeley.EDU
Позволяет вам искать совпадения всей строки "hofmann.CS.Berkeley.EDU" используя одну единственную конструкцию "$=S".
Была адаптирована конструкция $&x от IDA.
Поддерживается определенный в RFC 1413 протокол IDENT.
Устранены несколько небольших багов, типа связанных с экранирующими обратными чертами в комментариях.
Так как строка From: передается отдельно от конвертного отправителя, они оба были сделаны видимыми; макрос $g устанавливается в конвертного отправителя во время обработки вектора аргументов почтовой программы, и в заголовочного отправителя во время обработки заголовков.
Так же имеется возможность определить раздельную обработку конверта и заголовка по почтовой программе. Аргументы SenderRWSet и RecipientRWset для почтовых программ могут быть указаны как конвертный/заголовочный для того, чтобы задать различные правила перезаписи для конвертных и заголовочных адресов.
Когда псевдоним имеет ассоциированное имя списка владельцев, этот псевдоним используется для изменения конвертного адреса отправителя. В результате, при возникновении ошибок, они будут возвращаться к этому владельцу.
Было убрано ограничение на фиксированный размер заголовка.
Был добавлен флаг -B для передачи информации о типе тела.
Был добавлен флаг -p для передачи информации о протоколе.
Для отладки был добавлен флаг -X для разрешения протоколирования всех входящих и выходящих из sendmail протоколов.
Флаг -O означает установку опций в длинном виде.
Флаг -q может ограничить проход очереди определенными получателями, отправителями, или идентификаторами очереди используя -qRподстрока, -qSподстрока, или -qIподстрока соответственно.
Была добавлена строка K для декларирования преобразований баз данных.
Была добавлена строка V для декларирования уровня версии конфигурации.
Строка M имеет поле "D=", позволяющее вам переходить во временный каталог, пока работает эта почтовая программа. Она также имеет поле "U=", разрешающее вам назначить идентификаторы пользователя и группы, используемые для запуска почтовой программы.
Было добавлено несколько новых опций, большинство для поддержки новых свойств, остальные для настройки, которую ранее можно было сделать только перекомпилированием. Подробно они описаны в Разделе 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 |
Восьмибитный режим обработки. |
Опции r (таймаут чтения), I (использовать BIND), и T (таймаут очереди) были расширены для пропуска большей информации.
Было добавлено несколько новых флагов почтовых программ.
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. |
@ |
Проверить этого пользователя в пользовательской базе данных. |
Все опции могут быть определены длинными именами, а некоторые новые опции могут быть определены только длинными именами.
Предопределены следующие макросы:
$k |
Имя узла UUCP, номинально из вызова uname(2). |
$m |
Доменная часть полного имени нашего хоста. |
$_ |
Адрес отправителя по RFC 1413. |
Версия 8 разрешает $@, в левосторонней части строки "R", соответствовать нулевым лексемам. Предназначено для совпадения с нулевым вводом.
Версия 8 имеет до 100 наборов правил вместо 30. Рекомендуется резервировать наборы правил 0-9 для специального использования в будущих выпусках sendmail'ов.
Общее количество используемых записей MX может быть увеличено до 20.
Количество сообщений в очереди, обрабатываемых за один раз было увеличено с 600 до 1000.
В версии 8 параметры по умолчанию настройки очереди изменились так, чтобы сделать количество получателей более важным, чем размер сообщения (для небольших сообщений). Это вполне разумно, если вы имеете достаточно быстрые соединения.
Ранее, синтаксис "Полное Имя <адрес email >" мог выдавать некорректный протокольный вывод, если "Полное Имя" имело специальные символы типа точки. Эта версия проставляет кавычки вокруг таких имен.
В часть $@ почтовой программы $#error было встроено несколько имен.
Предыдущие версии sendmail считали VRFY и EXPN одним и тем же. В этой версии, VRFY не расширяет псевдонимы и не следует файлам .forward. EXPN все еще делает все это.
В качестве оптимизации, если у вас по умолчанию режим приема с постановкой в очередь, или приема в фоне, команда RCPT не будет трогать псевдонимы или файлы .forward. Они будут затронуты при обработке очереди.
Когда адрес разрешается к почтовой программе, имеющей "[IPC]" в качестве "Path", часть $@ (имя хоста) может быть списком хостов, разделенных двоеточиями вместо одного имени хоста. Это попросит sendmail просмотреть список на первое точно имеющееся вхождение, даже если это запись MX. Это предназначено для маршрутизации внутреннего трафика через внутренние сети без выдачи записи MX в сеть. Для индивидуальных целей расширение MX все еще производится.
Реализация была соединена с преобразованиями. Помимо всего прочего, теперь поддерживаются псевдонимы, основанные на NIS.
Было сделано большое количество внутренних изменений, направленных на улучшение переносимости.
Было произведено несколько настроек для увеличения коэффициента параноидальности.
Sendmail пишет файл /etc/sendmail.pid с текущим идентификатором процесса демона SMTP.
Два человека, использующие одну и ту же программу в их файлах .forward считаются различными, так что устранение дубликата не удалит одного из них.
Программа mailstats печатает имена почтовых программ и получает местонахождение файла sendmail.st из /etc/sendmail.cf.
Было исправлено множество небольших багов, типа обработки обратных слешей в кавычках.
Был добавлен крючок (набор правил 5) для того, чтобы было возможно перезаписать локальные адреса после псевдонимизирования.