|
Версия 6.3 |
|
| |||||||||||||||||||||||
Папка SubmittedМодуль PIPE CommuniGate Pro создаёт папку Submitted внутри директории данных CommuniGate Pro. Модуль PIPE периодически сканирует эту папку и обрабатывает файлы, имеющие расширение .sub. При обнаружении такого файла, модуль копирует его в файл очереди сообщений и передаёт его ядру сервера на обработку. Текстовые файлы .sub должны содержать сообщения в формате RFC822. Модуль использует данные их полей заголовков RFC822 для создания конверта сообщения.
Если обработка .sub файла заканчивается неудачно (например, в файле не содержится адреса получателя), то модуль помещает соответствующую запись в Системный Журнал и меняет расширение файла на .bad. Если .sub файл передан успешно, то он удаляется из папки Submitted. Из-за специфики обработки PIPE модулем папки Submitted, рекомендуется создавать сообщения в другой файловой директории и затем перемещать созданные .sub файлы в папку Submitted с расширением .tmp, а затем менять расширение файла на .sub. Сообщения, переданные через PIPE модуль, отмечаются как "полученные из доверенного источника" и в дальнейшем могут ретранслироваться без ограничений. Папка Submitted используется для Эмуляции Стандартного приложения mail. Доставка во Внешние ПриложенияМодуль PIPE принимает все сообщения, направляемые в домен pipe. Локальная часть адреса сообщения задаёт внешнее приложение, которое должно быть запущено. Эта часть может так же содержать параметры, заключённые в кавычки.
<*@somedomain> = exec*@pipe эта запись в Маршрутизаторе направит все сообщения, отправленные на адрес joe@somedomain в приложение execjoe.
<*@somedomain> = "execall\ -u\ *"@pipe эта запись в Маршрутизаторе направит все сообщения, посланные на адрес joe@somedomain в приложение execall, запущенное с параметрами -u joe. Для того, чтобы ограничить набор приложений, которые могут запускаться через PIPE модуль, в настройках модуля PIPE задаётся каталог для внешних программ. Имена приложений, указанные в адресах сообщения не могут включать в себя символ косой черты (/) или символы обратной косой черты (\), не могут начинаться с символа точка (.) и должны указывать на имя исполняемого файла, находящегося в каталоге для внешних программ. Текст сообщения (включая заголовки и тело сообщения) передаётся внешней программе на её стандартный ввод. Когда внешнее приложение завершает свою работу, PIPE модуль читает и выкидывает её стандартный вывод. Убедитесь, что ваша программа ничего не записывает в стандартный вывод, чтобы её работа не блокировалась в случае, когда буфер коммуникационного канала (pipe) между сервером и программой переполнен. Когда внешнее приложение завершает свою работу, PIPE модуль читает стандартный вывод ошибок внешнего приложения. Если он не пустой, то доставка сообщения заканчивается неуспешно, и текст, записанный в стандартном выводе ошибок отправляется как сообщение об ошибке отправителю сообщения. Последовательная доставкаЧтобы позволить PIPE процессорам доставлять сообщения одновременно, PIPE модуль создаёт отдельные очереди для каждого сообщения, которое он должен доставить. Если вы хотите использовать последовательную доставку, вы можете использовать следующий вид PIPE адреса: <incoming> = "queue[PROC1] procin -mark"@pipe Все сообщения, отправленные на адреса <incoming@maindomain.com> и <control@maindomain.com> будут обрабатываться одно за одним, используя один PIPE процессор. <control> = "queue[PROC1] procin1 -control"@pipe <archiver> = "queue[ARCH] appendfile /var/archive"@pipe Для PIPE адресов, не имеющих префикса queue[name], PIPE модуль создаст отдельные очереди с цифровыми именами. Теги КомандТекст сообщения (заголовок и тело) отправляется на стандартный ввод (stdin) задачи. Имя программы может иметь в качестве префикса тег [FILE]:[FILE] application parameters При использовании этого префикса стандартный ввод программы будет пустым (закрыт), или будет содержать только поля заголовка сообщения, добавленные в Правилах. Строка -f Queue/field.msg (флаг -f и имя файла Сообщения, относительно к директории данных) будут добавлены в конец параметров программы: -f Queue/12002345.msg Обратите внимание: Начало файла Очереди содержит сервисную информацию (конверт, опции и т.д.). Программа должна игнорировать эту информацию, пропустив все данные файла до первой пустой строки. Само сообщение начинается после первой пустой строки в файле Очереди. Обратите внимание: Поля заголовков, добавляемые к сообщению Общими для Сервера и Общими для Кластера Правилами, не хранятся в файле Очереди, а отправляются задаче через стандартный ввод задачи. Обратите внимание: этот префикс не должен использоваться на платформе MS Windows, так как Сервер держит файл сообщения открытым, что делает невозможным для внешних Задач чтение из него. Имя программы может иметь в качестве префикса тег [RETPATH]:[RETPATH] application parameters При указании этого префикса, строка "-p", за которой следует адрес return-path сообщения, добавляется в конец параметров программы: -p address@domain.com Имя программы может иметь в качестве префикса тег [RCPT]: [RCPT]application parameters При указании этого префикса, строка "-r", за которой следует оригинальный адрес получателя сообщения, добавляется в конец параметров программы: -r address1@domain1.com Имя программы может иметь в качестве префикса тег [STDERR] (смотрите ниже). Имя программы может иметь несколько префиксов, и они могут быть указаны в любом порядке. Если указано несколько префиксов [FILE], [RETPATH] и [RCPT], то сначала добавляется флаг -f и его параметры, затем флаг -p и его параметры, а затем флаг -r и его параметры. Если был указан префикс [STDERR] и внешнее приложение завершило отправку некоторых данных в свой канал стандартного вывода ошибок, то данные из стандартного вывода ошибок используются для формирования текста сообщения об ошибке. Настройка модуля PIPEДля того, чтобы настроить параметры PIPE модуля, используйте Веб Интерфейс Администратора. Откройте страницу Почта в области Установки, затем откройте страницу PIPE.
Обработка Чужих ОчередейВ чрезвычайной ситуации вам может понадобится обработать дополнительную директорию Queue, не останавливая ваш сервер. Такие ситуации могут возникать из-за сбоев в аппаратном обеспечении Сервера, когда восстановленные файлы должны быть обработаны каким-нибудь другим работающим Сервером. Для обработки дополнительной директории Queue, передвиньте её в директорию данных работающего Сервера как директорию ForeignQueue. Если вы предпочитаете использовать символьные ссылки, то убедитесь, что директории Queue и ForeignQueue находятся на одной файловой системе. Каждые 3 минуты PIPE модуль проверяет, существует ли в директории данных Сервера директория ForeignQueue. При обнаружении директории ForeignQueue, модуль передвигает все .msg файлы из директории ForeignQueue в директорию Queue (в процессе он может переименовывать файлы), и удаляет все .tmp файлы, найденные в директории ForeignQueue. Файлы с другими расширениями остаются в директории ForeignQueue. Все передвинутые .msg файлы передаются ядру Сервера в очередь ENQUEUER, и Сервер начинает обрабатывать их так же, как он обрабатывает другие передаваемые сообщения. Когда процесс сканирования завершён, директория ForeignQueue может быть удалена из директории данных. |