|
Версия 5.1 |
|
|
Передача Почты
Одной из основных функций Сервера CommuniGate Pro является передача сообщений электронной почты. Действуя как MTA (Агент по Передаче Почты), Сервер получает сообщения из различных источников (модули, внутренние компоненты и т.д.) и доставляет (передаёт) эти сообщения в удалённые или локальные места назначения, задействуя те или иные модули.
Все полученные сервером сообщения хранятся как отдельные файлы в директории Queue, находящейся внутри "директории данных" CommuniGate Pro; каждое сообщение может быть поставлено в несколько разных очередей на доставку (если оно имеет несколько получателей). Каждый коммуникационный модуль может обслуживать одну или несколько логических очередей. Например, SMTP модуль обслуживает одну очередь для каждого домена в Интернет.
|
|
|
Источники и Места назначения Сообщений
Сервер CommuniGate Pro использует следующие набор источников сообщений:
- SMTP модуль поставляет сообщения, полученные через Интернет от почтовых приложений и от других почтовых серверов. Используемая отметка об Адресе Источника: SMTP.
- RPOP модуль поставляет сообщения, забранные с удалённых POP серверов. Используемая отметка об Адресе Источника: RPOP.
- Модуль Местной Доставки поставляет сообщения, созданные Автоматическими Правилами для Обработки Почты уровня Пользователя. Используемая отметка об Адресе Источника: RULE.
- Модуль Местной Доставки перепосылает сообщения, направляемые на адреса "all" и перенаправляет их всем псевдонимам в указанном домене. Используемая отметка об Адресе Источника: ALLF.
- Модуль PIPE поставляет сообщения, полученные от внешних приложений через внутренние коммуникационные каналы и сообщения созданные и сохранённые в специальной директории Submitted. Используемая отметка об Адресе Источника: PIPE.
- POP модуль поставляет сообщения, полученные от почтовых приложений определённого типа, использующие протокол расширения XTND XMIT. Используемая отметка об Адресе Источника: POP.
- IMAP модуль поставляет сообщения, полученные от клиентских приложения, работающих через MAPI. Используемая отметка об Адресе Источника: IMAP.
- Модуль Веб Интерфейса Пользователя поставляет сообщения, созданные в Веб браузерах. Используемая отметка об Адресе Источника: HTTP.
- XIMSS модуль поставляет сообщения, созданные в XIMSS клиентах. Используемая отметка об Адресе Источника: XIMSS.
- Приложения Реального Времени поставляют сообщения, в которых находится входящая голосовая почта и т.п. Используемая отметка об Адресе Источника: PBX.
- Компонент Установка в очередь поставляет сообщения, сгенерированные Общими для Сервера и Общими для Кластера Правилами для Автоматической Обработки Почты. Используемая отметка об Адресе Источника: SRULE.
- Компонент Удаление из Очереди генерирует и поставляет сообщения с уведомлениями о доставке. Используемая отметка об Адресе Источника: DSN.
- Модули Веб Интерфейс Пользователя и XIMSS генерируют и поставляют Оповещения об Открытии Сообщения ("уведомления о прочтении"). Используемая отметка об Адресе Источника: MDN.
- Компонент Ведения Календаря генерирует и поставляет сообщения типа Приглашения на Встречу и т.п. Используемая отметка об Адресе Источника: ICAL.
- Модуль LIST поставляет сообщения, распространяемые через Список Рассылки. Используемая отметка об Адресе Источника: LIST.
- Модуль LIST поставляет ответы на сообщения, создаваемые при обработке запросов на администрирование. Используемая отметка об Адресе Источника: LSRV.
- Модуль LIST поставляет сообщения, направляемые индивидуальным подписчикам (Предупреждения, Приветственные, Прощальные и т.д.)) Используемая отметка об Адресе Источника: LSTM.
- Модуль LIST поставляет сообщения, направляемые владельцу списка. Используемая отметка об Адресе Источника: LSTO.
- Модуль LIST пересылает сообщения, направляемые Группе. Используемая отметка об Адресе Источника: GROUP.
- Компонент Триггеры генерирует и поставляет сообщения с уведомлениями о доставке. Используемая отметка об Адресе Источника: EVENT.
- Компонент СОРМ перехват сообщений генерирует и поставляет сообщения с уведомлениями. Используемая отметка об Адресе Источника: LWIT.
Сервер CommuniGate Pro передаёт сообщения по следующим местам назначения:
- SMTP модуль передаёт сообщения на другие почтовые сервера через Интернет;
- Модуль LIST принимает и обрабатывает сообщения, направляемые в Список Рассылки, а так же различные административные запросы в Списке Рассылки;
- Модуль Местной Доставки передаёт сообщения в локальные папки пользователей;
- Модуль PIPE передаёт сообщения на внешние приложения через внутренние коммуникационные каналы;
- Модуль Queue самостоятельно передаёт (выкидывает) сообщения, направляемые на адреса NULL или ERROR;
Следующая диаграмма иллюстрирует потоки сообщений в Сервере CommuniGate Pro:
Отправление Сообщений
Все сообщения создаются как временные файлы. Они хранятся в директории Queue как файлы с расширением .tmp. Модуль или внутренний компонент сохраняет конверт сообщения и само сообщение в таком файле и затем поставляет его на обработку компоненту Установка в Очередь.
Конверт сообщения состоит из набора текстовых строк. Каждая строка содержит либо обратный адрес, либо один из адресов получателей, либо опции доставки сообщения.
Если модуль не смог создать сообщение (например, из-за обрыва SMTP соединения во время передачи сообщения), то модуль выкидывает временный файл.
Если создание сообщения завершилось успешно и оно Установлено в Очередь, то расширение файла меняется на .msg и сообщение ставится на обработку.
При перезапуске Сервера, компонент Установка в Очередь находит все файлы с расширением .msg в директории Queue и перепоставляет их на обработку.
Откройте в области Установки Веб Интерфейса Администратора страницу Общее, затем на странице Прочее найдите панель Временные Файлы:
- Уровень Журнала
- Используйте эту настройку для того, что бы указать какую информацию модуль Временные Файлы должен сохранять в Журнале работы Сервера. Обычно используется уровень Сбои (отчёты об ошибках файловой системы). В случае возникновения с каким-либо модулем проблем при поставке сообщений, возможно, целесообразным будет увеличить детализацию до уровня Подробности или Всё: в этом случае в Журнал работы Сервера будет так же записываться подробная информация обо всех файловых операциях ввода/вывода. Когда проблема решена, верните настройку Уровень Журнала для Временных Файлов в её обычное значение, иначе Системный Журнал будет очень быстро увеличивать свой размер.
Записи, помещаемые в Системный Журнал Сервера модулем Временные Файлы имеют метку TEMPFILE.
- Использовать старые
- Для того, что бы увеличить производительность вашей системы под большой нагрузкой, включите эту опцию: выкинутые временные файлы не будут удаляться, а будут использоваться повторно.
Ограничение Длины Очереди и Файловая Структура
Если Сервер работает под большой загрузкой, то в директории Queue могут находиться тысячи файлов с сообщениями. Большое количество операционных и файловых систем не умеют эффективно обрабатывать такие большие директории. Возможно, вы захотите разбить директорию Queue на несколько поддиректорий, в каждой из которых будет находиться часть Временных файлов и файлов с сообщениями Очереди.
Возможно, вы захотите ограничить общее число сообщений в Очереди CommuniGate Pro. При достижении ограничения, модуль будет отвергать попытки поставить новые сообщения.
Для того, что бы задать опции обработки Очереди, используйте Веб Интерфейс Администратора. Откройте страницу Почта в области Установки, затем откройте страницу LIST:
- Ограничение Длины Очереди
- Если вы указываете в этой опции ограничение, то модули CommuniGate Pro (SMTP, PIPE, RPOP, MAPI, WebUser) будут останавливать попытки приёма новых сообщений в Очередь, число сообщений в которой превышает указанный лимит.
- Под-директории Очереди
- Эта настройка указывает, где Сервер CommuniGate Pro будет создавать новые Временные файлы, и, как следствие, как файлы сообщений будут сохранятся в директории Queue.
Если вы выберите значение 0 (ноль), то поддиректории в директории Queue создаваться не будут, и Временные файлы будут помещаться непосредственно в директорию Queue.
Если вы выберите значение 10 или 100, то в директории Queue будут создаваться поддиректории с именами NN (где NN является двухзначным числом от 00 до 99). Вновь создаваемые Временные файлы будут помещаться внутри этих поддиректорий. Сервер будет использовать 10 или 100 поддиректорий, в зависимости от значения настройки.
Если вы выберите значение Автомат, то поддиректории в Queue будут использоваться при превышении числом сообщений отметки в 5000.
Маршрутизация
Когда сообщение поставляется на обработку, компонент Установка в Очередь проверяет информацию, содержащуюся в его конверте. Каждый адрес получателя разбирается и передаётся в компонент Маршрутизатор. Компонент Маршрутизатор решает, какой модуль или компонент должен обрабатывать каждый адрес получателя.
Установка в Очередь
После того, как все адреса получателей разобраны и маршрут для них определён, компонент Установка в Очередь применяет к сообщению Правила, Общие для Сервера. Затем он передаёт сообщение в модули, указанные компонентом Маршрутизатор.
Коммуникационные модули не обрабатывают сообщения электронной почты немедленно, а устанавливают их в соответствующую очередь модуля. SMTP модуль создаёт и обслуживает очередь для каждого домена в Интернет, модуль Местной Доставки создаёт и обслуживает очередь для каждого локального Пользователя, и т.д.
Компонент Установка в Очередь может ставить сообщения в очередь:
- синхронно: как только сообщение создано и поставлено на Сервер, к нему применены правила Маршрутизации и Общесерверные/Общекластерные Правила, при этом компонент, в котором сообщение было создано, информируется в случае, если сообщение отвергается (например, если Внешний Фильтр обнаружил в нём вирус). Например, входящий SMTP канал отправляет отрицательный ответ отправителю инфицированного сообщения, сообщение не ставится в очередь, и сообщение об ошибке для инфицированного сообщения не создаётся.
- асинхронно: компонент, в котором было создано сообщение, немедленно получает положительный ответ, и он может продолжать обработку, не ожидая ответа от компонента Установка в Очередь. Например, входящий SMTP канал может немедленно начать получать следующее сообщение.
Большинство внутренних компонентов ставит сообщения в очередь асинхронно, так как они сами не могут предпринять никаких осмысленных действий в случае, если сообщение отвергается компонентом Установка в Очередь. Компоненты, получающие сообщения непосредственно от пользователей или от удалённых систем (SMTP, MAPI, WebMail, XIMSS) пытаются ставить сообщения в очередь синхронно, так что если сообщение отвергается компонентом Установка в Очередь, то агент, поставляющий сообщение (пользователь или удалённая система) смогут получить уведомление об ошибке.
Для того, что бы настроить параметры модуля Установка в Очередь, используйте Веб Интерфейс Администратора. Откройте страницу Очередь в области Установки.
- Уровень Журнала
- Используйте эту настройку для того, что бы указать какую информацию компонент Установка в Очередь должен сохранять в Журнале работы Сервера. Обычно используется уровень Сбои (отчёты об ошибках файловой системы).
Записи, помещаемые в Системный Журнал Сервера модулем Установка в Очередь, имеют метку ENQUEUER.
- Ставить Асинхронно
- Выберите эту опцию для использования асинхронного режима Установки в Очередь для всех компонентов, включая те, которые получают сообщения непосредственно от пользователей или удалённых систем.
- Обработчики
- Используйте эту настройку для указания числа обработчиков (нитей) Установки в Очередь.
Если опция Ставить Асинхронно не выбрана, то нити при Установки в Очередь используются только для установки в очередь существующих сообщений после перезапуска Сервера и для установки в очередь сообщений, созданных внутренними компонентами Сервера, то что вам будет вполне достаточно 2-3 нитей.
Если опция Ставить Асинхронно выбрана, то каждое сообщение обрабатывается нитью Установки в Очередь. В этом случае, 5-10 нитей, обслуживающих Установку в Очередь, будет достаточно даже для сильно загруженного Сервера.
Вы должны увеличить число обработчиков Установки в Очередь, если:
- сущствует очень много Правил, Общих для Сервера;
- Правила, Общие для Сервера используют действие Выполнить для запуска внешних программ;
- включён один или более Внешних Фильтров (антивирусов, фильтрация данных и т.п.);
- входящая загрузка очень высока, и через SMTP и другие модули на Сервер поступает больщое количество сообщений в секунду.
Элемент numEnqueuerMessages SNMP показывает число сообщений, которое было получено, но еще не установлено в очередь. Если это число растёт, то вам необходимо увеличить число обработчиков Установки в Очередь.
- Ограничение Числа 'Received'
- Сообщение, принятое любым хостом или модулем, получает дополнительное поле заголовка Received:. Число 'Received' - это число полей заголовка заголовка Received: в сообщении. Если сообщение содержит слишком много полей заголовка Received:, это может являться косвенным указанием на то, что сообщение попало в почтовую петлю. Этот параметр задаёт Ограничение на число полей заголовка 'Received' - любое сообщение, в котором содержится большее, чем указано в этой настройке, числе заголовков 'Received', отвергается при Установке в Очередь без какой-либо попытки доставить его получателям, указанным в конверте сообщения.
Откладывания и Задержки
Если коммуникационный модуль не может доставить сообщение, то он использует компонент ядра по управлению очередями для того, что бы отложить обработку.
- модуль может отложить очередь полностью: например, SMTP модуль может отложить очередь, созданную для какого-нибудь домена в Интернет, если он не может соединится с этим доменом или его релеем;
- модуль может отложить индивидуальное сообщение, находящееся в очереди: например, SMTP модуль может отложить сообщение, если получающий хост отвергает конкретно это сообщение (transition failure);
- модуль может отложить обработку адреса индивидуального получателя из сообщения, находящегося в очереди: например, SMTP модуль может отложить обработку адреса, если получающий хост отвергает конкретно этот адрес (transition failure).
Удаление из Очереди
Когда коммуникационный модуль передаёт сообщение или когда он, из-за фатальной ошибки, отвергает сообщение, он так же удаляет сообщение из очередь модуля. Модуль формирует отчёт о доставке и передаёт его компоненту Удаление из Очереди.
Компонент Удаление из Очереди обрабатывает информацию о доставке. Если необходимо, он формирует Уведомление о Статусе Доставки (DSN) и поставляет его обратно в систему для доставки отправителю оригинального сообщения. Если сообщение имеет несколько получателей, то компонент Удаление из Очереди может решить отложить создание DSN сообщения для того, что бы в каждом DSN сообщении могли содержаться отчёты о нескольких получателях.
Когда все получатели сообщений обработаны и сообщение удаляется из всех очередей, компонент Удаление из Очереди удаляет файл сообщения из директории Queue.
Для того, что бы настроить параметры компонента Удаление из Очереди, используйте Веб Интерфейс Администратора. Откройте страницу Очередь в области Установки.
- Уровень Журнала
- Используйте эту настройку для того, что бы указать какую информацию компонент Удаление из Очереди должен сохранять в Журнале работы Сервера. Обычно используется уровень Основные (отчёты о доставке).
Записи, помещаемые в Системный Журнал Сервера модулем Удаление из Очереди, имеют метку DEQUEUER.
- Обработчики
- Используйте эту настройку для указания числа обработчиков (нитей) Удаления из Очереди. Обычно одной нити Удаления из Очереди достаточно даже для высоко загруженного сервера. Только в случае, если ваш Сервер выполняет некоторую специальную обработку сообщений и может генерировать много DSN сообщений, вы должны использовать несколько нитей Удаления из Очереди.
- Задержка Оповещения
- Используйте эту настройку для указания максимальной задержки между моментом, как сообщение передано (или передача закончилась неуспешно) и генерацией уведомления о доставке. Чем больше задержка, тем больше уведомлений могут быть помещены в одно DSN сообщение. DSN сообщение генерируется сразу после того, как обработан последний получатель, указанный в сообщении.
- При неудаче, возвращать
- Используйте эту настройку для указания того, какая часть неуспешного сообщения должна быть включена в DSN сообщение (отчёт об ошибке).
- Если отправитель не указал эту опцию явно, и выбрана опция Заголовки (по умолчанию) то будут возвращаться только заголовки неуспешных сообщений;
- Если отправитель не указал эту опцию явно, и выбрана опция Тело (по умолчанию) то будет возвращаться всё неуспешное сообщение полностью;
- Если выбрана опция Заголовки (всегда), то в DSN сообщение включаются только заголовки, даже если отправитель сообщения указал, что при неудаче должно возвращаться всё сообщение полностью;
- Если выбрана опция Тело (всегда), то в DSN сообщение включаются всё сообщение, даже если отправитель сообщения указал, что при неудаче должны возвращаться только заголовки сообщения.
- Копии Оповещений о Неудачах к
- Когда эта опция включена, все сообщения об ошибках, созданные компонентом Удаление из Очереди, отправляются как по обратному адресу неуспешного сообщения, так и на указанный адрес электронной почты.
- Возвращать 'Return-Receipts'
- Положительные уведомления (уведомления о доставке и уведомления о ретрансляции) генерируются, только если отправитель сообщения затребовал их. Используйте эту настройку для указания того, кто может требовать такие уведомления:
всем | уведомления генерируются и отправляются для любого затребовавшего их отправителя сообщения. |
клиентам | уведомления генерируются и отправляются если сообщение было отправлено с Сетевого Адреса Клиента или если сообщение было отправлено аутентифицированным пользователем. |
аутентифицированным | уведомления генерируются и отправляются если сообщение было отправлено аутентифицированным пользователем (через Веб Интерфейс Пользователя, XIMSS, SMTP AUTH, MAPI, и т.д.). |
никому | положительные уведомления не генерируются. |
Наблюдение за Очередью
Передающие модули (такие как SMTP, Местной Доставки, LIST и PIPE) обслуживают одну или несколько очередей для доставляемых сообщений. Каждый модуль использует свой собственный метод для построения очередей (например, SMTP модуль обычно строит отдельную очередь для каждого удалённого домена, на который он осуществляет доставку, а модуль Местной Доставки строит отдельную очередь для каждого локального Пользователя); дополнительные подробности смотрите в описании каждого модуля.
Для того, что бы открыть очередь модуля, нажмите на ссылку с именем очереди на странице Наблюдения за этим модулем. Откроется страница наблюдения за очередью модуля ("хоста"):
Заголовок таблицы содержит информацию обо всей очереди ("хост"):
- Модуль
- Ссылка на страницу Наблюдения за модулем, которому принадлежит эта очередь.
- Состояние
- Активно - эта очередь обрабатывается модулем.
Готово - очередь может обрабатываться модулем в любое время.
Отложено время - эта очередь не будет обрабатываться модулем до наступления указанного времени. Очередь может быть отложена из-за того, что при операции передачи произошла ошибка для всей очереди (SMTP хост не ответил или локальный Пользователь превысил квоту и т.д.).
- Последняя Проблема
- Это поле показывает последнюю ошибку передачи, произошедшую в этой очереди.
В таблице имеется запись для каждого сообщения в очереди. Для каждого сообщения в очереди, показываются следующие информационные поля:
- Письмо
- Внутренний идентификационный номер сообщения. Вы можете использовать эту ссылку для того, что бы открыть страницу Наблюдения за Сообщением.
- В очереди
- Время, в течении которого сообщение находится в этой очереди.
- Return Path
- "Return-Path" адрес из конверта сообщения.
- Получатели
- Число адресов сообщения, которые должны быть доставлены "хостам", для которых была создана эта очередь. Например, сообщение, направляемое по адресам user1@company.dom и user2@company.dom через SMTP, появится в очереди SMTP для company.dom, с числом адресов, равным 2.
- Размер
- Размер сообщения.
- Отложено и Последняя Проблема
- Если доставка конкретного сообщения заканчивается неуспешно, то модуль Передачи может отложить это сообщение индивидуально (не задерживая всю очередь, в которого оно находится). В этом случае в этом поле показывается время, когда модуль снова попытается доставить сообщение, а в поле Последняя Проблема показывается причина, из-за которой операция передачи закончилась неуспешно.
Если вы имеете право доступа Может перезапускать Почтовые Очереди, и очередь имеет состояние Отложено, то на странице Наблюдения за Очередями появится кнопка Отпустить Очередь. Нажмите на эту кнопку для того, что бы снять время задержки, установленное для этой очереди и позволить модулю обрабатывать эту очередь немедленно.
Если вы имеете право доступа Может отвергать Почтовые Очереди и очередь имеет состояние Отложено, то на странице Наблюдения за Очередями для хоста появится кнопка Отвергнуть Очередь. Нажмите на кнопку для того, что бы отвергнуть очередь:
Указанный текст используется для генерации DSN сообщений (уведомлений об ошибках) для всех сообщений, помещаемых в эту очередь.
Если выбрана опция Подавить сообщения о Неудачной Доставке, то когда сообщения из очереди отвергаются, DSN сообщения не генерируются.
Наблюдение за Сообщением
Для того, что бы наблюдать за состоянием сообщения в Очереди Сервера, нажмите на соответствующую ссылку на сообщение, находящуюся в очереди Модуля (или находящуюся на другой странице Наблюдения). Откроется страница Наблюдения за Сообщением:
В первой части страницы показываются атрибуты сообщения: Return-Path, Message-ID, Envelope-ID (если есть), Тема сообщения и время, когда сообщение было поставлено в очередь на Сервере.
На второй части страницы показываются все активные адреса получателей сообщения (если адрес сообщения уже был обработан, то он не показывается). Для каждого адреса показывается следующая информация:
- Получатель
- Адрес получателя.
- Модуль
- Имя модуля, в котором будет обрабатываться адрес. Оно так же является ссылкой на страницу Наблюдения модуля.
- Очередь
- Имя очереди модуля, в которой находится этот адрес. Оно так же является ссылкой на страницу Наблюдения за очередью модуля.
- Состояние
- Обрабатывается - модуль обрабатывает этот адрес.
Готово - модуль может начать обработку адреса в любое время.
Задержано - модуль отложил обработку этого сообщения.
Отложено - модуль отложил обработку всей очереди, в которой содержится этот адрес.
- Повторить через
- Время, через которое модуль продолжит обработку этого сообщения или очереди, содержащей это сообщение.
Если вы имеете право доступа Может отвергать Почтовые Очереди, то на странице Наблюдения за будет находится кнопка Отвергнуть Письмо. Нажмите на эту кнопку для того, что бы отвергнуть все активные адреса сообщения.
Отвергаются только те адреса, которые не обрабатываются в настоящее время.
Указанный текст используется для генерирования DSN сообщений (уведомлений об ошибках) для всех отвергнутых адресов получателей.
Если выбрана опция Подавить сообщения о Неудачной Доставке, то когда адреса сообщения отвергаются, DSN сообщения не генерируются.
Руководство CommuniGate® Pro. Copyright © 1998-2007, Stalker Software, Inc.