Отсылка электронной почты средствами PL/I

Для случая, когда отсылка почты из задания - это не совсем подходящий вариант реализации задачи, можно использовать средства PL/I для отсылки корреспонденции. В нашем распоряжении имеется JES SPOOL API, и именно ее мы и будем использовать. Для работы необходимо объявить следующие структуры: DCL 1 CHNG_OPTIONS, 3 LL FIXED BIN (31), 3 ZZ FIXED BIN (15) INIT (0), 3 TEXT1 CHAR (14) INIT ('IAFP=N0M,PRTO='), 3 CHNG_CMD CHAR (34) VARYING, LEN FIXED BIN (15) BASED (ADDR(CHNG_CMD)); CHNG_OPTIONS.LL = CSTG(CHNG_OPTIONS)-2; DCL 1 CHNG_FEEDBACK, 3 LEN FIXED BIN (31) INIT (104), 3 ZZ FIXED BIN (15) INIT (0), 3 TEXT CHAR (100) INIT (''); DCL 1 PROFS_DATA, 3 BDWLEN FIXED BIN (31), 3 BDWZZ FIXED BIN (15) INIT (0), 3 MESSAGE_LINE(60), 5 LENGTH FIXED BIN (15), 5 ZZ FIXED BIN (15) INIT ((60)(0)), 5 TEXT CHAR (84); CHNG_OPTIONS будет использоваться для передачи параметров для JES SPOOL API в расширенной CHNG команде. CHNG_FEEDBACK будет содержать ответ от JES SPOOL API. PROFS_DATA будет содержать данные, пересылаемые на почту. Итак, для начала заполним структуру с опциями: PROFS_NODE = 'IBMMAIL'; PROFS_ID = 'INTERNET'; PRFNODEV = SUBSTR(PROFS_NODE,1,INDEX(PROFS_NODE || ' ',' ')-1); PROFSIDV = SUBSTR(PROFS_ID,1,INDEX(PROFS_ID || ' ',' ')-1); CHNG_CMD='DEST(' || PRFNODEV || '.' || PROFSIDV || '),CLASS(B) '; Дальнейшая логика работы проста до невозможности: 1) Выполняем CHNG команду, используя альтернативный PCB 2) Заполняем структуру с данными для отсылки 3) Выполняем ISRT и PURG команда, отсылая подготовленные данные CALL PLITDLI(#5, 'CHNG', MOD_PCB, ' ', CHNG_OPTIONS, CHNG_FEEDBACK); CALL FILL_MESSAGE_STRUCTURE(); CALL PLITDLI(#3, 'ISRT', MOD_PCB, ADDR(PROFS_DATA)); CALL PLITDLI(#2, 'PURG', MOD_PCB); Процедура заполнения текста письма выглядит следующим образом: FILL_MESSAGE_STRUCTURE: PROC; DCL COUNT FIXED BIN(31); PROFS_DATA = ''; PROFS_DATA.BDWLEN=CSTG(PROFS_DATA)-2; DO COUNT=1 TO 60; PROFS_DATA.MESSAGE_LINE(COUNT).LENGTH= CSTG(PROFS_DATA.MESSAGE_LINE(COUNT)); PROFS_DATA.MESSAGE_LINE(COUNT).TEXT=''; END; PROFS_DATA.MESSAGE_LINE(1).TEXT = '/INTERNET'; PROFS_DATA.MESSAGE_LINE(2).TEXT = '/TO ' || 'адрес получателя'; PROFS_DATA.MESSAGE_LINE(3).TEXT = '/SUBJECT ' || 'заголовок письма'; PROFS_DATA.MESSAGE_LINE(4).TEXT = '/END'; PROFS_DATA.MESSAGE_LINE(5).TEXT = 'Первая строка с телом письма'; END FILL_MESSAGE_STRUCTURE; Последующие элементы массива PROFS_DATA.MESSAGE_LINE.TEXT (6 и так далее до предела, установленного при объявлении структуры - в данном случае 60) нужно последовательно заполнять строками отсылаемого письма. Для запуска можно использовать задание, аналогичное тому, которое использовалось в публикации Отсылка IMS триггеров из PL/I. PSB так же можно использовать из предыдущего примера.Nike Air Penny 6

Добрый день! Не совсем

Добрый день!
Не совсем понятно какой job на компиляцию/линковку/исплднение

если можно, скиньте его kolyachkoandrew@gmail.com

Компиляция/ликновка -

Компиляция/ликновка - средствами SCLM, с параметрами по умолчанию. Задание на исполнение тоже без доп. параметров. То есть все 1 к 1 с другими программами, которые не используют JES SPOOL API

спасибо

спасибо

Отправить комментарий

  • Доступны HTML теги: <b> <i> <u> <br> <hr> <div> <span> <code> <pre>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <pli>.

Подробнее о форматировании

   ___    _____ 
/ _ \ |___ /
| (_) | |_ \
\__, | ___) |
/_/ |____/
Enter the code depicted in ASCII art style.