Sendmail Installation and Operation Guide

         

Таймауты Чтения


Все таймауты имеют имена типа "Timeout.подопция". Все распознаваемые подопции, их значения по умолчанию, и минимальные значения, позволяемые секцией 5.3.2 RFC 1123 таковы:

connect Время ожидания открытия SMTP соединения (системный вызов connect(2)) [0, неопределенное]. Если оно равно нулю, то используется значение из ядра системы. Эта опция ни в каком случае не может иметь значение больше, чем это позволяет ядро, но может быть меньше. Это сделано, чтобы обойти ядра, позволяющие абсурдно длительный таймаут соединения (в некоторых случаях 90 минут).
iconnect То же самое, что connect, кроме того, что оно применяется только для первичной попытки соединения с хостом для заданного сообщения [0, неопределенное]. Концепция такова: это значение должно быть очень небольшим (несколько секунд); хосты с хорошим соединением и отвечающие хосты, таким образом, будут обслужены немедленно. Медленные хосты не будут задерживать остальные доставки на стадии начальной попытки доставки.
initial Ожидание начального приветственного сообщения 220 [5m, 5m].
helo Ожидание ответа на команду HELO или EHLO [5m, неопределенное]. Это может потребовать просмотра имени хоста, поэтому пять минут, возможно, вполне приемлемый минимум.
mail| Время ожидания ответа на команду MAIL [10m, 5m].
rcpt| Время ожидания ответа на команду RCPT [1h, 5m]. Это значение должно быть большим, из-за того, что оно может указывать на список, и его расширение может занять много времени (смотри ниже).
datainit| Время ожидания ответа на команду DATA [5m, 2m].
datablock| Ожидание прочтения блока данных (то есть, тела сообщения). [1h, 3m]. Это значение должно быть большим, потому что оно также применяется к программам, которые могут достаточно медленно выводить данные в sendmail.
datafinal| Время ожидания ответа на точку, завершающую сообщение. [1h, 10m]. Если это значение короче, чем время, необходимое получателю для получения сообщения, будет сделана повторная передача. Это описывается в RFC 1047.
rset Время ожидания ответа на команду RSET [5m, неопределенное].
quit Время ожидания ответа на команду QUIT [2m, неопределенное].
misc Время ожидания ответа на различные (но короткие) команды, типа NOOP (нет операции) и VERB (переход в подробный режим). [2m, неопределенное].
command| Для сервера SMTP, время ожидания следующей команды. [1h, 5m].
ident Время ожидания ответа на запрос IDENT [30s, неопределенное].
hoststatus Сколько времени информация о хосте (например, о том, что он отключен) будет кэширована, прежде чем она устареет [30m, неопределеное].
<


Для совместимости со старыми файлами конфигурации, если ни одна подопция не определена, таймауты обозначенные знаком | устанавливаются равными указанному значению.

Многие из минимальных значений в RFC 1123 слишком малы. Sendmail был разработан для протоколов RFC 822, которые не определяют таймауты чтения; следовательно, версии sendmail до 8.1 не гарантируют быстрого ответа на сообщения. В частности, команда "RCPT" определяющая список рассылки будет расширена и проверит весь список полностью; большой список на медленной системе может запросто занять времени больше, чем пять минут . Я рекомендую таймаут в один час - так как обрыв соединения во время фазы RCPT достаточно редки, длительный таймаут не обременителен, но может сильно помочь в уменьшении загрузки сети и повторных сообщений.

Например, строки: O Timeout.command=25 O Timeout.datablock=3h

Устанавливает серверу SMTP таймаут на команды 25 минут и таймаут на ввод блока данных 3 часа.


Содержание раздела