Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

GNU Mailman

Глава 10 из книги "Архитектура приложений с открытым исходным кодом", том 2.

Оригинал: GNU Mailman
Автор: Barry Warsaw
Перевод: А.Панин

10.6. Обработчики сообщений и каналы

Как только сообщение проходит через все звенья и преодолевает все проверки выполнения правил, получая разрешение на размещение в списке рассылки, оно должно быть дополнительно обработано перед тем, как будет доставлено конечным адресатам. Например, некоторые заголовки могут быть добавлены или удалены, а также некоторые сообщения могут подвергнуться дополнительным модификациям для предоставления важных предупреждений или информации, такой, как информация том, как покинуть список рассылки. Эти модификации выполняются в рамках канала, содержащего последовательность обработчиков сообщений. Аналогично обработчикам сообщений в звеньях при использовании правил, функции каналов и обработчиков сообщений также могут быть расширены, но существует набор встроенных каналов, предназначенных для стандартного использования. Обработчики сообщений имеют такой же интерфейс, как и правила, принимающий объект списка рассылки, объект сообщения и словарь метаданных. Однако, в отличие от правил, обработчики сообщений могут дополнять и модифицировать сообщение. Рисунок 10.4 иллюстрирует стандартный канал и набор обработчиков сообщений (некоторые обработчики сообщений исключены для упрощения).

Очередь обработчиков сообщения в рамках канала
Рисунок 10.4: Очередь обработчиков сообщения в рамках канала

Например, отправленное сообщение должно иметь добавленный заголовок Precedence:, который сообщает другим автоматически функционирующим программным компонентам о том, что сообщение пришло из списка рассылки. Этот заголовок является стандартом де-факто, позволяющим предотвратить отправку ответов на сообщения из списка рассылки при использовании автоматизированных программ. Добавление этого заголовка (наряду с другими модификациями заголовков) осуществляется с помощью обработчика сообщений для добавления заголовков ("add header" handler). В отличие от правил, порядок использования обработчиков сообщений в общем случае не существенен и сообщения всегда проходят через все обработчики сообщений канала.

Некоторые обработчики сообщений отправляют копии сообщения в другие очереди. Как показано на Рисунке 10.4, существует обработчик сообщения, создающий копию сообщения для подписчиков, которые хотят принимать каталоги сообщений. Копии также отправляются в очередь архива для последующего помещения в архив списков рассылки. Наконец, сообщение копируется в очередь исходящих сообщений для окончательной доставки подписчикам списка рассылки.


Далее: Variable Envelope Return Path