Файловые адресные почтовые ящики


     В  отличие от  MailBoxes,  предназначенных  для того,  чтобы разбирать
приходящую почту,  FileBoxes (файловые адресные почтовые  ящики) служат для
оптимизации  выходного  потока.  Обычно,  для  того,  чтобы послать файл на
некоторый узел, оператор должен  создать письмо с соответствующим атрибутом
(fileattached). Это  письмо, помимо того, что  дает информацию упаковщику о
необходимости включить  файл в очередь,  служит целям маршрутизации  - ведь
сам файл (произвольный) не содержит  информацию об узле назначения. Однако,
на практике,  большинство файлов пересылаются прямо  на узел назначения, не
подвергаясь  никакой   маршрутизации.  Так,  например,   файлы,  содержащие
эхопочту, всегда пересылаются напрямую.

     В  таких  случаях  необходимость  в  сопроводительном служебном письме
отпадает, при условии, что можно каким-то образом сообщить мэйлеру о адресе
назначения. В некоторой степени эту проблему решают FileBoxes. Идея такова:
каждому  адресу  может  быть  поставлен  в  соответствие  файловый каталог,
который считается  его FileBox-ом. Если установлена  связь с этой системой,
T-Mail отправит все файлы из этого каталога и удалит их (отправленные файлы
с атрибутом  ReadOnly   удалены  не  будут).  Кроме   того,  системе  будут
отправлены  и удалены  файлы, которые  находятся в  файлбоксах для его AKA.
Таким  образом, чтобы  дать задание  T-Mail послать  файл на некую систему,
достаточно скопировать его в соответствующий FileBox.

     ВНИМАНИЕ:   при  использовании   файловых  ящиков  вводятся следующие
ограничения на адреса систем, для которых эти ящики создаются:

          zone  - от 1 до 1023
          net   - от 1 до 32767
          node  - от 0 до 32767
          point - от 0 до 1023

Файловые ящики  для систем с иными значениями элементов адреса не создаются
и не анализируются.

     T-mail анализирует  наличие файлов (и  их размер) в  файловых ящиках в
конце цикла ожидания звонка (с интервалом, заданным в переменной Circle или
Scan_Circle  в   t-mail.ctl ).  Эти   данные  используются  для  формирования
очереди.   Каждому  адресу   соответствуют  2   filebox-а,  имена   которых
предопределены. Один из  них является "активным", то есть  наличие файлов в
нем  заставляет t-mail  попытаться позвонить   на этот  адрес, другой  же -
"неактивен"  (hold filebox).  Из "неактивного"  filebox-а файлы  передаются
только  в том  случае, если  узел-владелец этого  filebox позвонил сам. Это
аналогично  использованию  атрибута   Hold forPickUр  в  служебных  письмах,
сопровождающих пересылку файла (fileattached).

     Имена "активных" и "неактивных"  fileboxes отличаются последней буквой
расширения. Например, для одного и того же адреса имена каталогов-fileboxes
будут выглядеть так:

     1234567.01      - "активный" filebox
     1234567.01H     - "неактивный" (hold) filebox.

     Поскольку  FileBox   привязан  к  соответствующему   адресу,  его  имя
"вычисляется"  из  адреса  узла.  Корневой  каталог  для FileBoxes задается
переменной File_Boxes в  T-Mail.ctl :

     File_Boxes c:\T-Mail\filebox\

     Если  эта  переменная  не  определена,  то  файловые адресные ящики не
обрабатываются.

     В этом каталоге T-Mail ищет  подкаталоги, имена которых вычисляются из
адреса zone:net/node.point по следующей схеме:

zznnnfff.ppx

где zz - 32-ричное представление zone,
   nnn - 32-ричное представление net,
   fff - 32-ричное представление node,
    pp - 32-ричное представление point.
     x - если этот filebox "активный", то пусто,
         а если он "неактивный" (hold), то символ H.

Например, для адреса 2:5030/100.1 каталог будет иметь такое имя:

c:\T-Mail\filebox\024T6034.01

     Более детально  механизм вычисления имен описан  в T-Mail API. Отметим
лишь,  что 32-ричное  представление -  это представление  числа в символами
0-1,A-V по основанию 32.

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

     Наличие файлов с ненулевой длиной в  активном файлбоксе (так же, как и
наличие   писем   с   attached   files)   является   поводом  позвонить  на
соответствующий узел.

     Кроме задания  имен каталогов "по  умолчанию", можно явно  поставить в
соответствие  адресу файловый  каталог. Это  делается заданием  BOX в файле
Subst.lst  (см  "Файл  подстановок").  В  этом  случае  этот  каталог будет
дополнительным  filebox  для  этого  адреса.  Единственное  его  отличие от
"активного" filebox по умолчанию в  том, что каталоги, заданные в  subst.lst 
(они имеют произвольные имена) не удаляются в случае, если они пусты.

     Рекомендуется  избегать создавать  свои собственные  каталоги по пути,
совпадающем с  File_Boxes. T-Mail может  принять ваш каталог  за filebox,
соответствующий какому-либо адресу со всеми вытекающими последствиями.