Описание основного файла конфигурации "T-mail.ctl" T-mail Описание файла парольной защиты "Password.Lst"
Описание файла настройки событий и маршрутизации "Events.Ctl" Описание файла подстановок "Subst.Lst"

7.Файлы конфигурации T-Mail

Для настройки и установки параметров T-Mail используются несколько конфигурационных файлов. Чтение информации из этих файлов T-Mail производит при начале работы, а также впоследствии при наличии соответствующих условий или явной команды.

Все файлы конфигурации представляют собой обычные текстовые ASCII-файлы, редактировать которые можно с использованием любого текстового редактора. Физическая длина строк текста во всех конфигурационных текстовых файлах не должна превышать 128 символов. Ниже будут описаны эти файлы по отдельности, однако, следует иметь ввиду, что эта глава носит в первую очередь справочный характер, отдельные пункты, упомянутые в этих файлах, будут подробно рассмотрены ниже. Поэтому, если вы читаете эту главу впервые, то, возможно, будет иметь смысл просмотреть ее и вернуться к ней позже.

Основным файлом является файл t-mail.ctl. Его имя задано по умолчанию, но может быть изменено с помощью ключа -c при запуске T-Mail. В дальнейшем, для краткости, будем называть этот файл его именем по умолчанию. В этом файле устанавливаются все основные параметры системы, определяются дополнительные клавиши, настраиваются звуковые сигналы, задаются имена файлов и каталогов, настраивается встроенный терминал, определяются флаги, процессы, почтовые и файловые ящики, устанавливается трансляция телефонных номеров, задаются параметры управления модемом, настраивается процедура ответавызывающейсистемы,описываютсявнешниеобработчикии мэйлеры, производится═══ настройка══ процедуры═══ handshake,══ файловых═══ запросов, настраиваются протоколыобмена, а для коммерческойверсии - дополнительно производится══ установка══ параметров══ для══ работы══ факсимильнойчасти, автоответчикаиработывлокальнойсети.Этотфайл читается первым и определяет имена всех остальных файлов конфигурации. Ищется он по умолчанию в том же каталоге, где находится сама программа t-mail.exe.

Файл настройки событий и маршрутизации почты. По умолчанию имеет имя events.ctl, однако, его имя может быть задано в файле t-mail.ctl (переменная EventList). В дальнейшем, для краткости, будем называть этот файл его именем по умолчанию. В этом файле задаются правила маршрутизации почты и описываются события, которыми управляет T-Mail. Ищется в том же каталоге, где находится основной файл конфигурации t-mail.ctl.

Файл подстановок. Его имя можно задать в t-mail.ctl (переменная SubstList). В дальнейшем, для краткости, будем называть этот файл subst.lst. С помощью этого файла можно изменить и дополнить самые различные данные о конкретных системах. По умолчанию файл ищется в том же каталоге, где находится основной файл конфигурации t-mail.ctl. Если этот файл не определен в переменной SubstList, то он не используется.

Файл задания паролей. Его имя можно задать в t-mail.ctl (переменная Security). В дальнейшем, для краткости, будем называть этот файл password.lst. В этом файле можно, как и в файле подстановок, задавать пароли для сеанса связи для определенных систем. Если одна и та же система описана и в subst.lst, и в password.lst, приоритет остается за subst.lst. Если файл password.lst не определен в переменной Security, то он не используется.

Кроме того, T-Mail при работе может использовать еще некоторые файлы, которые будут описаны ниже в соответствующих главах документации.

Итак, в дальнейшем для краткости мы будем пользоваться именами файлов конфигурации по умолчанию: t-mail.ctl, events.ctl, subst.lst и password.lst.

Комментарии

Во всех файлах конфигурации можно использовать комментарии. Комментарии начинаются с символа ';' и продолжаются до конца строки. Комментарии никак не интерпретируются программой T-Mail. Комментарии могут содержать любые печатаемые символы ASCII.

Примеры:

; --== this is remark string ==--

Include Answer.ctl══ ; в этой строке описан include-файл

Init AT&F|; Factory default

Специальные директивы Define и Include

Директива DEFINE. Она может использоваться в файлах t-mail.ctl, events.ctl и subst.lst. Синтаксис директивы:

Define<substring> <newstring>

С помощью данной директивы осуществляется макроподстановка, то есть, в значениях переменных или описаниях событий и маршрутизации <substring> заменяется на <newstring>.

Пример (t-mail.ctl):

Define mynet5030

Define mynode 15

....

Address 2:mynet/mynode.0

....

Freq_Nodes══ mynet/mynode.*

....

Пример (events.ctl):

Define═══ hubs/2 /6 /35 /27 /108

....

Direct═══ hubs

Priorityhubs11:00-13:00

Директивы define в t-mail.ctl, events.ctl, subst.lst независимы. Максимальное количество таких директив в каждом из этих файлов - 50. Вложенность не допускается. Макросы, определенные этими директивами, ищутся и заменяются только "справа", т.е. в поле "значение" для t-mail.ctl, правее поля "директива" в events.ctl и правее адреса в subst.lst. В макросах можно задавать символы в шестнадцатиричном виде, используя служебные символы '\x'. Это, например, единственный способ задать символы "точка с запятой", CR, LF в значимых полях конфигурационных файлов.

Пример (t-mail.ctl):

define semicolon\x3B

...

Init AT+fclass=2 semicolon FAA=1; init string

Пример(t-mail.ctl):

define<cr>═════ \x0d

define<login>══ login:\x0d

...

Extern Mail hrumhrum<cr> hrum.bat

Extern Mail <login> uuuu.bat

Директива INCLUDE. Она может использоваться в файлах t-mail.ctl, events.ctl и subst.lst. Синтаксис директивы:

Include<filename>

С помощью данной директивы к файлу конфигурации могут логически присоединяться другие текстовые файлы как составные части. Присоединяемые файлы по своей структуре должны соответствовать синтаксическим правилам того файла, к которому они присоединяются. Вместо <filename> указывается имя присоединяемого файла. Это может быть полное имя файла, а если в имени файла не указан путь - файл будет искаться в том же каталоге, в котором находится файл с соответствующей директивой include. Максимальная глубина вложения - 10. Число директив Include не ограничено.

Примеры:

Includeemsi.ctl

Includeanswer.ctl

[4] Includec:\t-mail\my_ctls\hmm.ctl

Номер задачи

T-Mail может использоваться в многолинейных системах для обслуживания двух и более линий. В этом случае необходимо использовать многозадачную среду или локальную сеть для запуска нескольких копий T-Mail (подробнее см. главу 21). Каждая такая копия (задача) должна иметь свой уникальный номер, задаваемый при запуске T-Mail из командной строки с помощью ключа -N<task ident>, где <task ident> - число, задающее номер задачи. Для того, чтобы с помощью одних и тех же файлов конфигурации задавать различные параметры для каждой такой копии (задачи) в файлах t-mail.ctl, events.ctl и subst.lst предусмотрена возможность указания НОМЕРА ЗАДАЧИ для каждой переменной (или строки). Номер задачи задается в квадратных скобках перед переменной:

[N] <переменная>

Можно указывать несколько номеров задач перед переменной, через запятую:

[1,2,...] <переменная>

Если НОМЕР ЗАДАЧИ в описании переменной не задан, то переменная действует для всех задач. Если указан конкретный номер, то переменная действует только для задачи с этим номером. Если указана буква [M], то переменная действует только для той задачи, которая описана в t-mail.ctl как Master. Если указана буква [S], то переменная действует для всех задач, которые описаны в t-mail.ctl как Slave. Указание звездочки [*] эквивалентно отсутствию НОМЕРА ЗАДАЧИ - переменная действует для всех задач. Если для какой-либо задачи не указана переменная Task_Mode, то для этой задачи действуют переменные с буквой [M], а переменные с буквой [S] не действуют. Несколько номеров, указанных через запятую, означают, что переменная действует для всех перечисленных задач. В этом списке можно использовать и цифры и буквы M и S. Одинаковые НОМЕРА ЗАДАЧ в разных файлах конфигурации означают одну и ту же задачу.

Примечание. Нельзя указывать буквы [M] и [S] для переменных, расположенных в t-mail.ctl перед переменной Task_Mode.

Пример (t-mail.ctl): [1]

Task Mode══ Master

[2,3] Task Mode══ Slave

...

[M] Port 1; задается номер порта для задачи номер1

[2] Port 3; задается номер порта для задачи номер2

[3] Port 4; задается номер порта для задачи номер3

Пример (t-mail.ctl):

[M] Init1 AT&F\N7| ; строка инициализации модема для задачи 1

[S] Init1 AT&F\N6| ; строка инициализации модема для задач 2 и 3

...

[*] Init_Terminal ATE1M1|═══ ; задается параметр для всех задач

...

Dial ATDP════════════ ; задается параметр для всех задач

...

[M,2,4] Term_Download c:\dl; параметр для мастера и задач 2 и 4

[0,3]══ Term_Download c:\dl2 ; параметр для задач 0 и 3

Задание интервалов времени

Во многих переменных конфигурационных файлов используется задание моментов или интервалов времени в качестве параметра. Такой параметр может состоять из одного или нескольких моментов или промежутков времени, разделителем между которыми должна являться запятая. Пробелы в строках задания времени НЕДОПУСТИМЫ. Простой интервал времени задается следующим образом:

15:00-23:45

Это означает, что интервал охватывает время с 15 часов до 23 часов 45 минут включительно ежедневно. Кроме того, есть возможность задания дней недели, в которые этот интервал действует (включительно). Например:

1.01:00-5.07:00

Это означает, что интервал охватывает время с 1 часа до 7 часов пять дней в неделю - с понедельника по пятницу. Цифра с точкой перед временем означает номер дня недели: 1-понедельник, 2-вторник, ..., 7 или 0 - воскресенье. Можно создавать сложные интервалы, например:

1.23:00-5.07:00,6.00:00-7.24:00

охватываются периоды с понедельника по пятницу с 23 до 7 часов, в субботу и воскресенье круглосуточно;

2.09:00-2.17:00,3.09:00-5.15:00,4.12:00-6.18:00,5.21:00-5.23:30

охватываются периоды: вторник - с 9 до 17, среда - с 9 до 15, четверг - с 9 до 18, пятница - с 9 до 18 и с 21 до 23:30, суббота - с 12 до 18, в воскресенье и понедельник интервалов нет.

Как видно из последнего примера, интервалы могут перекрываться.

Кроме интервалов времени, могут задаваться моменты времени, обозначаемые просто <time>. Это обычное указание момента времени, возможен вариант с указанием дня недели. Моментов времени может быть указано несколько, разделителем должна являться запятая, например:

23:00,5.16:30,19:30

Использование переменных окружения (environment)

В конфигурационных файлах t-mail.ctl, events.ctl и subst.lst можно использовать значения переменных окружения DOS, OS/2 или Windows NT. При этом имена переменных заключаются в символы "%".

Кроме того, могут быть использованы две специальные переменные с аналогичным синтаксисом - %TASKNO% и %PLATFORM%. Переменные окружения с такими именами будут проигнорированы. Вместо %TASKNO% будет подставлен номер задачи T-Mail, который задается в командной строке ключом -N (см. главу 21). Вместо %PLATFORM% будет подставлено наименование операционной системы: "DOS", "OS2" или "NT". Так, если вы используете T-Mail для DOS (пусть даже в окне OS/2) - подставится "DOS".

Пример:

(autoexec.bat)

SET TPATH=c:\tmail\

SET Name=John Smith

SET Addr=2:5030/999

SET ans1=Answer

SET rin1=Ring

(t-mail.ctl)

Include %TPATH%modem.ctl ;(эквивалентно: Include c:\tmail\modem.ctl)

SysOp══ %Name%══════════ ;(эквивалентно: SysOp John Smith)

Address %Addr%══════════════ ;(эквивалентно: Address 2:5030/999)

[*] Log t-mail%TASKNO%.log ;(для задачи номер 1 эквивалентно Log t-mail1.log)

(events.ctl)

Set %ans1%_%rin1%=4; (эквивалентно: Answer_Ring=4)

Execdaily%TASKNO%.bat 0:01;(для задачи номер 1 эквивалентно Exec daily1.bat 0:01)

Модификаторы для запуска внешних программ

Во всех файлах конфигурации при задании выполнения внешних программ (или команд) перед именем этих программ можно указывать модификаторы (префиксы). Возможно использование нескольких разных модификаторов одновременно. Ниже перечислены допустимые модификаторы:

'!'═ - неделать swap.Призаданииэтого модификаторапри запуске внешнейзадачинебудетвыполненосвопированиеT-Mailи, следовательно,уменьшитсяколичество══ свободнойпамятидля запускаемойзадачипринекоторомускоренииее запуска. Для операционных системOS/2 и WindowsNT этот модификаторимеет несколько иное значение (см. главы 22 и 23).

Пример:

Process_Flag repack.t-m !repack.bat

'%'- не сохранять экран. Призадании этого модификатора при запуске внешней задаче не будет сохранено содержимое экрана.

Пример:

Process_Flag repack.t-m !%repack.bat

'+'- послевозвращения извнешнейзадачипри наличиисигнала CD сразуперейтикhandshakeвпроцедуреответа.Этоможет понадобитьсяприиспользованиивнешних обработчиков входящих вызовов.

Пример:

(t-mail.ctl):

Process_Flag!always.t-m+waitcall.bat *P

(waitcall.bat):

:start

wa.exe port %1

iferrorlevel 1 goto start

REM if errorlevel 0 CONNECT reached

del flags\always.t-m

Использование макросов в параметрах

При задании параметров команд и программ в конфигурационных файлах T-Mail часто можно использовать макросы - специальные служебные символы, которые затем будут автоматически заменены на определенные значения. В каждом конкретном случае значения макросов будут описаны конкретно, некоторые макросы имеют смысл не везде. Ниже приведено общее описание используемых макросов:

*A √ полный адрес текущей системы;

*D √ файловый ящик "по умолчанию" для текущей системы;

*X √ полное имя файла *.?LO или *.?UT в Bink-Style Outbound (без расширения) для текущей системы;

*I PID текущей задачи;

*B √ скорость соединения (DCE baudrate);

*L √ скорость фиксации порта (locked port);

*P √ номер COM-порта;

*T √ номер задачи (task ident);

*O √ (только для OS/2 и NT версии) - handle открытого COM порта;

*M √ текущее системное время компьютера (в формате ЧЧ:ММ);

*C √ текущая системная дата компьютера (в формате ДД/ММ/ГГ);

*F √ имя определенного файла или каталога;

*H √ время (в минутах) до окончания периода, когда разрешены выходы в BBS;

*N - различные иные числовые значения.