smtp

Отсылка электронной почты средствами 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,

Отсылка файла на почту в JCL

Сегодня предлагаю поговорить про простой способ отсылки содержимого текстового файла на почтовый ящик.

Решение этой задачи возложим на JCL. Шаг задания, выполняющий требуемое действие выглядит следующим образом:

//STEP010 EXEC PGM=IEBGENER
//SYSIN     DD DUMMY
//SYSPRINT  DD SYSOUT=*
//SYSUT1    DD DSN=USERID.MAILHEAD,DISP=SHR
//          DD DSN=USERID.TEXTFILE,DISP=SHR
//SYSUT2    DD SYSOUT=(B,SMTP)

IEBGENER - стандартная утилита;
USERID.TEXTFILE - файл с текстом письма;
USERID.MAILHEAD - файл с SMTP командами (в конце строк я оставил комментарии, в реальном файле их нужно удалить):

HELO CONFIRMATION
MAIL FROM:<sender@domain.com>           - email отправителя
RCPT TO:<email1@domain.com>             - email первого адресата
RCPT TO:<email2@domain.com>             - email второго адресата
DATA
TO: email1@domain.com                   - email первого адресата