session
Отправка сообщений из стека сообщений производится сессиями.
Во время одной сессии может быть отправлено несколько почтовых сообщений.
Наличие в журнале записи этого типа означает запуск новой сессии.
Обычно время выполнения сессии отправки сообщений включается во время
выполнения скрипта при обращении посетителей к сайту. Поэтому время
выполнения сессии ограничено. Максимальное время выполнения одной
сессии задается константой MAIL_SEND_TIMEOUT
и по умолчанию
равно 20 секунд.
Сессии не могут стартовать чаще, чем один раз в
MAIL_SEND_INTERVAL
секунд.
По умолчанию значение этой константы равно 60 секунд.
Если значение этой константы больше, чем значение константы
MAIL_SEND_TIMEOUT
, то это гарантирует отсутствие
параллельных сессий.
Количество сообщений, отправляемых во время одной сессии, ограничено
правилами, которые задаются константой
MAIL_SEND_COUNT
.
Правила задаются парами чисел, первое из которых - промежуток времени в
секундах, а второе - максимальное количество почтовых сообщений, которое
может быть отправлено в течение этого промежутка времени.
Числа и пары чисел разделяются между собой одним пробелом.
Значение по умолчанию:
86400 1000 3600 50 300 5
Определяет три правила, которые означают, что в течение суток может быть
отправлено не более 1000
сообщений, в течение часа - не более 50, а в течение 5 минут -
не более 5 сообщений.
Минимальное количество сообщений в правилах определяет максимальное
количество сообщений, отправляемых в одной сессии.
Например, для приведенных выше правил максимальное количество сообщений
в одной сессии составит не более 5.
Формат данного в журнале для записей этого типа:
<total> <now> [<rule_1> [<rule_2> [...]]]
<total>
- общее количество сообщений в стеке сообщений
на момент запуска сессии.
<now>
- количество сообщений в стеке сообщений, которые
могут быть отправлены в текущей сессии. В текущей сессии не могут быть
отправлены сообщения, если при их предыдущей отправке возникла ошибка и
после предыдущей попытки прошло меньше, чем MAIL_SEND_RETRY
секунд.
<rule_i>
- количество сообщений, которые могут быть
отправлены в текущей сессии с учетом i-го правила.
Правила здесь расположены в таком порядке, как они записаны в константе
MAIL_SEND_COUNT
.
Количество сообщений, которые могут быть отправлены в текущей сессии
определяется как минимум среди всех чисел в данном строки с информацией
о сессии.
Например,
Dec 07, 2005, 19:16 sess 2 2 971 46 4
означает, что 07.12.2005 в 19:16 стартовала сессия.
Всего на момент старта сессии в стеке сообщений было два сообщения (первая двойка).
Эти сообщения отправляются первый раз или после их предыдущей отправки
прошло больше, чем 21600 (MAIL_SEND_RETRY
) секунд, поэтому
оба эти сообщения могут быть отправлены в текущей сессии (вторая двойка).
В течение суток было отправлено 1000-971=29 сообщений.
В течение часа - 50-46=4 сообщения.
В течение последних пяти минут было отправлено 5-4=1 сообщение.
Во время этой сессии может быть отправлено не более, чем
min(2,2,971,46,4)=2 сообщения.
Если сервер достаточно быстрый для того, чтобы в течение
20 (MAIL_SEND_TIMEOUT
) секунд принять эти два сообщения,
то эти два сообщения и будут отправлены.