Сообщение состоит из тела и конверта. Тело сообщения может содержать один или несколько файлов различного типа. Одно сообщение может иметь несколько получателей. Конверт сообщения помещается в его конце.
Конверт
Содержимое и размерность полей конверта представлено в Табл. 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)