Previous | Next | Trail Map | Основной конфигурационный файл (t-mail.ctl)

Index |

Process Control


    В этой  секции  определены  так  называемые  Process  (процессы).  Это
    внешние   программы,   которые    будут   запускаться   в   результате
    какого-нибудь определенного события.


Синтаксис: Process [Online|Imm] <macro>|<filemask> <action1> [# <action2>] [# <action2>] где <macro> : ArcMail - обработка при приходе ArcMail (эхопочты) Tic - обработка при приходе .?IC файлов NetMail - если принято хотя бы одно письмо Files - если принят любой файл Session - после завершения любого сеанса связи (*) Fax - после принятия любого факса (*) Voice - после принятия голосового сообщения (*) Nodelist - при изменении нодлиста (нодлистов) (*) Empty_Queue - если очередь пуста (*) Empty_Fax_Queue - если очередь факсов пуста (*) FREQ - внешний обработчик файловых запросов (*) Примечание: (*) - такой процесс может быть задан только один. <filemask> - маска файлов (в соответствии с правилами операционной системы). Online - необязательный префикс, он обозначает, что процесс должен быть выполнен после завершения приема файлов (без обрыва соединения). Может быть использован с макрос ArcMail, Tic, NetMail, Files и с <filemask>. Imm - необязательный префикс, он обозначает, что процесс должен быть выполнен немедленно после завершения приема одного из файлов, указанных в этом Process (без обрыва соединения). Может быть использован с макрос ArcMail, Tic, NetMail, Files и с <filemask>. <action*> - одно из следующих действий, которое будет выполнено: <KeyWord> <[!] command> <dvpname> Далее эти действия описаны подробно. <KeyWord> - одно из ключевых слов, определяющих действие: Exit <EL> [<line>] - выход из T-Mail с заданным кодом завершения (errorlevel) <EL>, EL - число в интервале 1-255. Если задан параметр <line>, то при выходе будет сформирован командный файл с именем EXITxx.BAT (EXITxx.CMD), где "xx" - номер задачи T-Mail (по умолчанию 01). Этот файл будет содержать одну строку, содержимое которой будет взято из <line>. <line> может содержать макросы, описанные ниже; в командный файл же будут подставлены соответствующие реальные значения. Если <line> отсутствует, то командный файл создан не будет. Set <var>=<value> - задать новое значение переменной в t-mail.ctl Poll <addr group> - сформировать Poll по заданному адресу или группе адресов <addr group>. Control - принудительно перечитать все конфигурационные файлы T-Mail. Этот процесс будет выполнен последним, т.к. информация о процессах, которые должны были быть выполнены после него, будет утрачена при его выполнении. Repack <addr group>- пересканировать заново нетмэйл, а также, если используются, то файловые ящики, персональные почтовые ящики и Bink-Style Outbound и сформировать очередь заново. Если задана группа адресов <addr group>, то производится перепаковка только для адресов, входящих в эту группу. При выполнении этого действия в Slave-задаче происходит только сброс счетчиков (попыток дозвона и т.п.). KeyMacro <macro> - имитирует ввод с клавиатуры символов и скэн-кодов, определенных в <macro> (см. главу 20 документации). Sound <filename> - воспроизводит звуковой файл (.wav или .voc). Работает только в коммерческих версиях для OS/2 и Windows NT (см. раздел "Звуковые эффекты" главы 20 и главу 30). Drop <addr list> - Удалить служебные письма для адресов <addr list> и перепаковать для них почту. Create <filename> - создать файл <filename> или системный семафор (для OS/2 и Windows NT). Системный семафор должен начинаться с символов "\SEM32\", например: "\SEM32\arcmail.t-m". Kill <filename> - уничтожить файл <filename>. Log <string> - вывести строку символов <string> в лог-файл (определенный переменной Log в t-mail.ctl ), на экран и (только для OS/2) в pipe-log. В строке <string> можно использовать макрос *A. Terminal [<script>]- осуществляется выход в эмулятор терминала (встроенный). Если после слова Terminal задано имя файла сценария, то после входа в терминал этот сценарий будет выполнен. После этого T-Mail останется в режиме эмулятора терминала, однако, если сценарий завершился инструкцией "Exit", то произойдет выход из эмулятора терминала. Script <filename> - выполнить сценарий, находящийся в файле <filename> (см. главу 29 ). Nothing - ничего не делать. <command> - это просто имя программы, которую нужно запустить для соответствующей обработки (.exe, .com, .bat,..), и ее параметры. Если перед <command> стоит '!', это означает, что команда будет запущена без swap. При работе в OS/2 и Windows NT символ '!' имеет другое значение: перед запуском внешней задачи необходимо закрыть соответствующий этой задаче COM-порт. При этом использование макроса *O теряет свой смысл. <dvpname> - имя (с путем) DesqView programm, т.е имя .dvp-файла, определяющего окно, которое нужно открыть в этом случае. Примеры: -------- Process ArcMail c:\squish\squish.exe -In -Out Process Tic anytic.bat -Debug ; ищется в ; системном каталоге Process Netmail Create flags\anymail.t-m ; создается флаг Process *.doc copy files\*.doc \doc ; Указана маска. Process *.zip Exit 98 ; Exit with errorlevel Process Files c:\tools\fixfiles.com ; путь явно указан Process *.exe del ..\inbound\*.exe Process test*.* move ..\inbound\test*.* ..\inbound\testfiles Process Arcmail Create \SEM32\anyarc.t-m Process Online *.reg doreg.bat *A *D *B Process Online *.zip Create zipflag.t-m Process Imm *.exe !del inbound\*.exe Process Imm *.reg start register.cmd Process Imm *.exe KeyMacro <Alt-C>Hey, man!ɘd>Thank you!ɘd> Process Online req.bbs Exit 99 bbs.exe -d -p*P -b*B -y*N Если не определены Process для Arcmail или Tic, то пришедшие файлы с соответствующими "магическими" именами будут считаться простыми принятыми файлами и "подпадут под действие" макроса 'Files'. При задании <command> в Process можно использовать макросы, которые будут заменены на соответствующие параметры: *A - полный адрес системы, с которой только что завершился сеанс связи; *B - скорость соединения (DCE baudrate); *D - файлбокс "по умолчанию" для системы, с которой только что завершился сеанс связи; *I - PID текущей задачи; *L - скорость фиксации порта (locked port) (или 0); *P - номер COM-порта; *T - номер задачи (task number); *O - (только для OS/2 и NT версии) - handle открытого COM порта; *N - 1 при успешном завершении сеанса связи, иначе - 0, используется только в Process Session. Процессы, заданные переменными "Process" выполняются в том порядке, в котором они определены в t-mail.ctl . Может быть определено несколько действий (<action>), соответствующих одному процессу (множественные действия). При этом каждое следующее действие должно начинаться с новой строки и предваряться символом "#". Для некоторых процессов, однако, множественные действия не выполняются, такие случаи будут особо оговорены ниже. Действия Control и Exit должны быть последними. Если после Control или Exit поставить еще какие-либо действия, то такие действия выполнены не будут. Пример: ------- Process Arcmail Sound arcmail.wav # Toss.bat # Scan.bat # Sound endtoss.wav # Repack All # Poll 5030/15 # Exit 99 Максимальное число директив Process ограничено только оперативной памятью. Ниже отдельно рассмотрено несколько специфических процессов. Process Session runme.bat ; After session Определяет процесс, который выполняется после завершения каждого сеанса связи. Возможно использование всех макросов. Можно задать только один такой процесс. Process Fax fax.bat ; If fax received Определяет процесс, который выполняется если принят факс. При задании процесса можно использовать два параметра, подставляемые по умолчанию: имя файла (без пути) с принятым факсом и идентификатор факс-машины (FAX ID), если таковой был получен от отправителя. При задании Process Fax нельзя использовать макросы. Нельзя также использовать префиксы Online и Imm. Можно задать только один такой процесс. Для этого процесса множественные действия не поддерживаются. Process Voice voice.bat ; If voice message received Определяет процесс, который выполняется если принято голосовое сообщение. При задании процесса можно использовать параметр, подставляемый по умолчанию: имя файла (без пути) с принятым сообщением. При задании Process Voice нельзя использовать макросы. Нельзя также использовать префиксы Online и Imm. Можно задать только один такой процесс. Для этого процесса множественные действия не поддерживаются. Process Nodelist c:\t-mail\tnc.exe -f ; Compile nodelist Определяет процесс, который выполняется, если невозможно открыть индексный файл, сделанный компилятором нодлистов TNC, а также если изменилась дата или время любого из нодлистов/пойнтлистов, используемых T-Mail, или при исчезновении любого из них. Префиксы Online и Imm использовать нельзя. Можно задать только один такой процесс. Process Empty_Queue empty.bat ; If queue is empty Определяет процесс, который выполняется если очередь пуста. Для мультилинейной системы обрабатывается только t-mail/master. Можно использовать макросы (кроме *A и *D). Префиксы Online и Imm с этой переменной не используются. Можно задать только один такой процесс. Process Empty_Fax_Queue empty.bat ; If fax queue is empty Определяет процесс, который выполняется если факсовая очередь пуста. Для мультилинейной системы обрабатывается только t-mail/master. Можно использовать макросы (кроме *A и *D). Префиксы Online и Imm с этой переменной не используются. Можно задать только один такой процесс. Process FREQ profr.exe *F *A *B *T ; If FREQ received Определяет процесс, который выполняется при приеме файлового запроса. Имя файла запроса (*.req) передается с помощью макроса *F, кроме того, можно использовать и остальные макросы (кроме *N). С помощью этого процесса можно запустить программу - внешний обработчик запросов, результат (список файлов, которые следует отослать в ответ на запрос) эта программа должна поместить в файл с именем RESPONSE.FRQ в каталоге <Packets>\T-$$-<task no>. (<Packets> - путь, заданный директивой Packets в t-mail.ctl , <task no> - номер задачи, например: c:\t-mail\packets\t-$$-1\response.frq). Файл RESPONSE.FRQ - обычный текстовый файл, каждая строка которого - имя файла для отсылки. Каждую строку можно начинать с символов "^" или "#", в первом случае файл после отсылки будет удален, во втором - усечен до нулевой длины. Префиксы Online и Imm с этой переменной использовать нельзя. Для этого процесса множественные действия не поддерживаются. Process Undialable Sound alarm.wav Определяет процесс, который выполняется при автоматическом получении какой-либо системой в очереди статуса Undiailable (в результате переполнения счетчиков попыток и пр.). Префиксы Online и Imm использовать нельзя. Можно задать только один такой процесс. Данный процесс может быть многострочным, например: Process Undialable Sound alarm.wav # echo System *A got undialable status >> undial.log # Txt2msg.exe -Fundial.log -D5030/15.20 "-Ssystem *A is undialable" # Drop *A

Previous | Next | Trail Map | Основной конфигурационный файл (t-mail.ctl)