[Закрыть]
 
popoff.donetsk.ua
Блистать умом во мраке глупости - очень эффектно и очень неэффективно.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Модули - mail - Журнал
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Деньги, но неинтересная работа и невозможность уделить время семье
Интересная работа, возможность саморазвиваться, но нищенский заработок
Ваш возраст (не обязательно)
Почему? (не обязательно)

Голосование закрыто.

Поиск по сайту
Реклама
Гинеколог, стоматолог, психотерапевт в Донецке
Статистика

Журнал

Постоянный адрес статьи

Подсистема почтовых рассылок ведет журнал отправляемых с сервера сообщений.

Каждая строчка содержит в себе три поля: дату, тип записи и данное. Данное определяется типом записи.

Возможные типы записей в журнале отправляемых сообщений:

add

Перед отправкой все сообщения помещаются в стек отправляемых сообщений.

Эта запись означает, что в стек отправляемых сообщений добавлено новое сообщение. Формат данного:

<i_priority> <s_to> <s_id> <s_from>

<i_priority> - приоритет сообщения (целое число). Чем больше это число, тем ниже приоритет сообщения. Если в стеке много сообщений, то в первую очередь отправляются сообщения с самым высоким приоритетом.

<s_to> - адрес получателя

<s_id> - идентификатор сообщения. Эта строка в свободном формате. Она задается скриптом, который генерирует почтовое сообщение. Обычно по этой строке можно определить службу, которая сгенерировала сообщение, логин получателя и, возможно, какую-то дополнительную информацию, идентифицирующую письмо. Например, для уведомления о новом сообщении в форуме в этой строке может быть записан идентификатор этого сообщения.

<s_from> - адрес отправителя

Например:

Dec 07, 2005, 21:19 add 20 spam@spam.ua text.notify popoff work/libs/mail/ nospam@nospam.ua

Означает, что 07.12.2005 в 21:19 в стек сообщений было добавлено письмо. Его приоритет - 20. Письмо будет отправлено по адресу spam@spam.ua. Адрес отправителя - nospam@nospam.ua. Письмо было сгенерировано подсистемой информирования об изменениях в службе управления статьями для пользователя с логином popoff и в этом письме содержится уведомление об изменении статьи work/libs/mail/.

abor

abort

Константа MAIL_SEND_ABORT определяет максимальное время жизни почтового сообщения в стеке сообщений. Если в течение этого времени сообщение не может быть отправлено (например, не доступен SMTP-сервер), то сообщение удаляется из стека сообщений и об этом делается специальная отметка в журнале.

По умолчанию значение константы MAIL_SEND_ABORT равно 86400*7 секунд (7 суток).

comp

complete

Сообщение успешно отправлено.

Формат данного - такой же, как и для записей типа add.

err

error

Во время отправки сообщения возникла ошибка.

Обычно сообщения об ошибках дублируются в журнале ошибок. Но в журнале ошибок может появиться дополнительная информация, например, дамп протокола обмена с сервером.

Данное содержит в себе сообщение об ошибке и информацию об отправляемом сообщении в таком же формате, как и для записей типа add.

Сообщение, которое не может быть отправлено в данный момент, остается в стеке сообщений и будет в следующий раз отправлено не ранее, чем через MAIL_SEND_RETRY секунд. По умолчанию значение этой константы равно 21600 секунд (6 часов).

lock

lock

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

Формат данного - такой же, как и для записей типа add.

perm

add permanent

В стек сообщений добавлено сообщение с приоритетом 0.

Сообщения с приоритетом 0 всегда отправляются сразу непосредственно после добавления, и для таких сообщений не действуют ограничения на нагрузку сервера, задаваемые константой MAIL_SEND_COUNT.

sess

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) секунд принять эти два сообщения, то эти два сообщения и будут отправлены.

Приоритеты

Постоянный адрес статьи
; системные
1 error.log

; все операции с аккаунтом
10 passport

; администрирование
20 money.order
20 love.admin
20 text.admin

; все приватные сообщения
30 passport.mail
30 talk.reply
30 love.reply

; публичные сообщения, мало получателей
40 forum.news.message
40 forum.news.topic

; публичные сообщения, много получателей
50 forum.news.theme

; новости, много получателей
60 love.autosearch
60 news.mail

Последняя модификация: 19.02.06 21:09

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>