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

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

Поиск по сайту
Реклама
Программное обеспечение любой сложности
koins.com.ua
Статистика

Журнал

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

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

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

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

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

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