Структура сообщения и отчета

Сообщение состоит из тела и конверта. Тело сообщения может содержать один или несколько файлов различного типа. Одно сообщение может иметь несколько получателей. Конверт сообщения помещается в его конце.

Конверт

Содержимое и размерность полей конверта представлено в Табл. 1. Каждое сообщение имеет идентификатор — поле .IN, отправителя, его адрес определен в поле .DL и нескольких получателей — поле .RP. Кроме этого каждое сообщение может содержать несколько файлов — поле .FL. Обязательными полями для каждого конверта являются:

 .IN=хххххх
 .DL=C:xxx/ADMD:xxx/PRMD:xxx/ORG:xxx/OU:xxx/PN:xxx
 .RP=C:xxx/ADMD:xxx/PRMD:xxx/ORG:xxx/OU:xxx/PN:xxx

Для следующих полей значениями «по умолчанию» являются –

.TYPE  — M
.ST — обрабатывается программой клиентом по усмотрению разработчика
.PR  — N
.AR  — 1
.RT  — 0
.AT  — FM

Поля, не перечисленные в данном списке, не имеют значений «по умолчанию».

Таблица 1.

Перечень информационных полей сообщения

N Наименование поля Длина и тип З Р Содержимое поля
***** *** Сообщение
1.  IN  CH42 > * Идентификатор
2.  IT CH25 * Время получения на узел
3. ST CH25 + * Время создания сообщения
4. ST_O CH25 + K Время создания исходного сообщения (для квитанций)
5.  ET  25 К Доставка не позже
6. NREPORTS INT Б Количество отчетов
7. RECPNUMBER INT Б Количество получателей
8.  DT  25 К Доставка не раньше
9.  VD  32 + К Идентификатор программы, сформировавшей конверт
10. X400 CH255 Б Полный адрес
11.  PN  CH32 + * С 8 по 13 адрес отправителя  Персональный номер
12.  OU  CH32 + * Отдел
13.  ORG  CH32 + * Организация
14.  PRMD  CH32 + * Регион частного управления
15.  ADMD  CH32 + * Регион административного управления
16.  C  CH5 + * Страна
17.  TYPE  CH1 + * Тип сообщения (М-сообщение, R-отчет, Х-другие)
18.  TH  CH76 > * Тема сообщения
19. FILENUMBER  INT Б Количество файлов в сообщении
20.  SIZEOFMESS  INT Б Размер сообщения байт
21.  AТ 2 > К Тип адреса
22. TC 2 + K Счетчик транзитов (не обязательное поле)
23.  T<n> NAME,HT 24+20 + К Номер транзитного узла, имя транзитного узла, время маршрутизации на транзитном узле
24.  RT  1 + К Тип требуемого отчета (1-маршрутизатор, 2-программа распаковки, 3-и то и другое)
25.  AR  1 К Признак архивации (0 – не архивировать)
26.  PR  CH1 + * Приоритет
25. OT 255 + К Поле, формируемое в отчете получателем сообщения
26. RESERV CH25 Б Резерв
27. NBODY INT > K Номер (по порядку) файла в конверте, являющегося телом сообщения. Прим.(см. Разрешенные имена файлов тела сообщения)
 *****  *** Получатели
1. X400 CH255 Б Полный адрес
2. OUT_FTA CH8 Б Имя выходного АПФ
3.  PN  CH32 + * С 1 по 6 адрес получателя
4.  OU  CH32 + *
5.  ORG  CH32 + *
6.  PRMD  CH32 + *
7.  ADMD  CH32 + *
8.  C  CH5 + *
9.  DIR  CH32 Б Имя узла, куда ушло сообщение
10.  ХТ  CH25 Б Время отправки с узла
11.  RCODE  INT + * Код доставки от маршрутизатора
12.  ERCODE  INT + * Код доставки от программы распаковки
13.  RTR CH25 Б Время формирования отчета маршрутизатором
14.  RTP  CH25 Б Время формирования отчета программой распаковки
 *****  *** Файлы
1.  FL CH255 > * Имя файла (в конверте полное)
2.  FSIZE  INT Б Размер файла
3.  FTIME  CH25 Б Время создания файла
4.  LNN CH255 > K Информация о «длинном» имени файла

 

Символы, находящиеся в колонке «З» (Запись)  означают следующее:

  • «>» — данное поле переносится из конверта сообщения в конверт отчета без изменений;
  • «-» — данное поле в отчет не переносится;
  • «+» — данное поле формируется программой, которая отправляет отчет.

Символы, находящиеся в колонке «Р» (Регистрация)  означают следующее:

  • «*» — данное поле регистрируется в базах и в конверте;
  • «Б» — данное регистрируется только в базах;
  • «K» — данное поле регистрируется только в конверте.

Описание полей

Ниже описаны все поля конверта.

IN — Идентификатор — уникальное поле. По этому полю идентифицируются все сообщения и отчеты. В отчет переносится без изменений.
Формат:  C~150507125611ASDN12T712G8J65MA, где:

  • C — однобуквенный  код, присваиваемый программой сформировавшей сообщение;
  • «~» — разделитель;
  • 150507125611 — дата и время формирования данного сообщения (7 мая 2015 г, 12ч 56мин 11сек);
  • ASDN12T712G8J65MA — уникальный набор символов.

ST – Время отправки сообщения.
ST_O — Время отправки сообщения, на которое пришел отчет (только для отчетов)
ET — Доставка не позже.
DT — Доставка не раньше.
DL — адрес отправителя. В конверте адрес отправителя имеет следующий формат:
.DL=C:xxx/ADMD:xxxx/PRMD:xxxx/ORG:xxxx/OU:xxxx/PN:xxxx
В отчете поле DL может принимать значение краткого адреса (имени узла). В этом случае его формат следующий: .DL=HOST:имя узла.
.DL_R — X400 адрес, от чьего имени отправлено сообщение (например, секретарь от имени директора). В отчет не переносится.
.DL_N — символьное имя отправителя, например:.DL_N=Василий;
TYPE — Тип сообщения.  Принимает значения  M, P  для сообщений.

Предопределенные типы:

M — сообщение (message)
R — отчет
A — адресная книга
B — широковещательное сообщение
S — системное сообщение

TH — Тема сообщения.
FILENUMBER — Количество файлов в сообщении.
SIZEOFMESS — Размер сообщения — байт.
AТ — Тип адреса.
TC — Счетчик транзитных узлов. Указывает количество узлов, через которое прошло данное сообщение или отчет. Опционально.
T<n>NAME, HT — Номер транзитного узла, имя транзитного узла и время маршрутизации на транзитном узле.
RT — Тип требуемого отчета. Указывает, от какой программы запрашивается отчет (1 — маршрутизатор, 2 — программа распаковки, 3 — и то и другое).
AR — Признак архивации. Указывает на необходимость архивации данного сообщения для длительного хранения. 1 — подлежит длительному хранению в архивах, 0 — нет. При отсутствии этого поля принимается значение 1.
PR — Приоритет. Приоритет сообщения. A — абсолютный, H — высокий, N — нормальный, L — низкий, R — приоритет отчета.
OT — Поле, формируемое в отчете получателем сообщения. Данное поле присутствует только в конверте отчета. В одном отчете может присутствовать несколько таких полей. В данное поле заносится адрес получателя сообщения, код доставки, который в дальнейшем переносится в поле RCODE/ERCODE баз данных,  время доставки сообщения, на которое отправляется отчет и, при ненорме – символьное объяснение ошибки.

Коды доставки:

  • jх — отказ в доставке (х-код завершения программы j-й внешней программы типа FMRP)
  • 2 — дубль
  • 3 — маршрут не найден
  • 4 — истекло время доставки
  • 5 — ошибка СRC почтового сообщения
  • 6 — сообщение было удалено (без открытия)
  • 7 — несоответствие адреса отправителя его имени

.RP — адрес получателя. В конверте может быть несколько получателей. Формат:
.RP=C:xxx/ADMD:xxxx/PRMD:xxxx/ORG:xxxx/OU:xxxx/PN:xxxx

RCODE — Код доставки от маршрутизатора.

  • 0 — нормальный
  • 1 — ошибка в доставке, уточнение причины ошибки – в поле .OT

ERCODE — Код доставки от программы распаковки.

  • 0 — нормальный
  • 1 — ошибка прочтения, уточнение причины ошибки – в поле .OT

FL — Имя файла, упакованного в конверт. В конверте указывается с путем к этому файлу.

Ниже приведены дополнительные поля в базе данных:

C, ADMD, PRMD, ORG, OU, PN — Поля адреса отправителя сообщения. В базу данных поля заносятся каждое в отдельности.
NREPORT — Количество пришедших отчетов на данное сообщение.
RECPNUMBER — Количество получателей сообщения.
VD — Идентификатор программы сформировавшей сообщение.
X400 — Полный адрес Х400.
OUT_FTA — Имя выходного АПФ
DIR — Имя узла, куда ушло сообщение
IT — Время получения на узел.
ХТ — Время отправки с узла
PLG — Служебная информация
RTR — Время формирования отчета маршрутизатором
RTP — Время формирования отчета программой распаковки
FL — Имя файла, упакованного в конверт. В конверте указывается с путем к этому файлу. В базу заносится только имя файла. В отчет это поле переносится с символом ‘*’ вначале.
FSIZE — Размер файла
FTIME — Время создания файла

Отчет

На каждое сообщение может быть запрошен отчет, который формируется либо узлом, либо прикладной программой или тем и другим. Отчет может быть и не запрошен. Отчет — это сообщение, состоящее из одного конверта.

Ниже приведен пример конверта сообщения и отчеты на него. Данное сообщение будет получено получателем. Комментарии приведены для объяснения полей.

.IN=S~150507125611ASDN12T712G8J65MA
;идентификатор сообщения
.ST=20150507130000
;дата получения сообщения узлом получателя
.ET=20150508010000
; сообщение должно быть доставлено до 01:00 8 мая 2015 г., если к этому сроку оно не будет доставлено в ящик получателя, система его уничтожит с отправкой отчета об этом его отправителю
.VD=WSH (V 01.1)
;сообщение сформировано программой WSH версии 01.1
.DL=C:UA/ADMD:ADFMAIL/PRMD:KIEV/ORG:ADMIN/OU:BUHG/PN:BOSS
;адрес отправителя сообщения
.DL_N=Семен Семеныч
.TYPE=M
;тип — сообщение
.TH=О КРЕДИТЕ
;тема
.AТ=FM
;тип адреса — FOSSMAIL
.TC=3
;количество узлов, через которое прошло это сообщение
.T1=ADMIN_KIEV,20150507130001
.T2=ADMIN_KHARKOV,20150507130101
.T3=ADMIN_IZUM,20150507130201
;имена этих узлов и время прохождения через них
.RT=3
;тип отчета — это сообщение требует создание отчета на него от узла, к которому приписан его получатель и от самого получателя
.AR=0
;данное сообщение не подлежит длительному хранению в архивах
.PR=H
;сообщение отправлено с высоким приоритетом
.RP=C:UA/ADMD:ADFMAIL/PRMD:KHARKIV/ORG:IZUM/OU:BUHG/PN:IVAN
;адрес получателя сообщения
.FL=C:\USER\KREDIT.TXT
.FL=C:\USER\READ.TXT
;файлы, составляющие тело сообщения

На данное сообщение будет сформировано два отчета. Один от маршрутизатора узла, к которому приписан данный получатель, и второй непосредственно от самого получателя. Данные отчеты представлены ниже.

.IN=SRT~150507125611ASDN12T712G8J65MA
;идентификатор, совпадающий с идентификатором самого сообщения
.VD=ROUTER (V 01.1)
;версия программы, сформировавшей отчет
.RP=C:UA/ADMD:ADFMAIL/PRMD:KIEV/ORG:ADMIN/OU:BUHG/PN:BOSS
;адрес получателя отчета (адрес отправителя самого сообщения)
.TYPE=R
;тип — отчет
.TH=О КРЕДИТЕ
;тема — взята из сообщения
.AТ=FM
;тип адреса
.TC=3
;количество узлов, через которые прошел отчет
.T1=ADMIN_IZUM,20150507130211
.T1=ADMIN_KHARKOV,20150507130301
.T3=ADMIN_KIEV,20150507130401
.*T1=ADMIN_KIEV,20150507130001
.*T2=ADMIN_KHARKOV,20150507130101
.*T3=ADMIN_IZUM,20150507130201
;имена узлов, через которые прошел отчет
.PR=R
;приоритет отчета
.RCODE=0
;код доставки до узла — успешно
.DL=HOST:ADMIN_IZUM
;имя узла, сформировавшего отчет
.*FL=C:\USER\KREDIT.TXT
.*FL=C:\USER\READ.TXT
;”закомментированные” символом “*” имена файлов, находившихся в сообщении
.OT=C:UA/ADMD:ADFMAIL/PRMD:KHARKOV/ORG:IZUM/OU:BUHG/PN:IVAN#(0, 20150507130211)
;адрес получателя сообщения и в скобках код его доставки с указанием даты формирования отчета

Отчет от конкретного получателя сообщения отличается от отчета самого узла тем, что поле RCODE отсутствует. Вместо него представлено поле ERCODE. Вместо имени узла, получившего сообщение, адрес получателя сообщения.

.IN=SRT~150507125611ASDN12T712G8J65MA
.VD=WSH (V 01.1)
.RP=C:UA/ADMD:ADFMAIL/PRMD:KIEV/ORG:ADMIN/OU:BUHG/PN:BOSS
.TYPE=R
.TH=О КРЕДИТЕ
.AТ=FM
.TC=3.T1=ADMIN_IZUM,20150507130211
.T1=ADMIN_KHARKOV,2015507130301
.T3=ADMIN_KIEV,2015507130401
.*T1=ADMIN_KIEV,2015507130001
.*T2=ADMIN_KHARKOV,2015507130101
.*T3=ADMIN_IZUM,2015507130201
.PR=H
.ERCODE=0
.DL= C:UA/ADMD:ADFMAIL/PRMD:KHARKOV/ORG:IZUM/OU:BUHG/PN:IVAN
.*FL=C:\USER\KREDIT.TXT
.*FL=C:\USER\READ.TXT
.OT=C:UA/ADMD:ADFMAIL/PRMD:KHARKOV/ORG:IZUM/OU:BUHG/PN:IVAN#(0, 2015507130211)