e-Mail et AS/400
Quelques exemples élémentaires
SMTP, expédition de mails par ou via la machine
Généralités
Principe
Ce qui suit concerne uniquement l’utilisation de la commande SNA classique SNDDST.
Condition
Le sous-système QSNADS doit être démarré.
L’utilisateur doit être enregistré dans le répertoire de distribution du système.
Commande de base : WRKDIRE. Noter que le nom inscrit dans le répertoire est limité à 8 caractères ; il peut en fait être complètement différent de l'id utilisateur AS/400.
- Ajouter une entrée (si n’existe pas encore) : exemple pour un utilisateur connu sur l’AS400 sous l’userid MACHIN, ADDDIRE USRID(MACHIN OFUP) USRD('Machin, service info') USER(MACHIN)
- Ajouter l’alias (adresse eMail de l’expéditeur) : CHGDIRE USRID(MACHIN OFUP) USRDFNFLD((SMTPAUSRID SMTP 'alphonse.machin') (SMTPDMN SMTP 'ofup-education.com')). Ou WRKDIRE, option 19 après sélection de l’entrée à adapter. Ou encore WRKNAMSMTP option SYSTEM.
Configuration de base
- Utilisation d’INTERNET
- Pour pouvoir expédier des courriers électroniques dans le monde extérieur, demander à l’administrateur réseau le nom ou l’adresse réseau de la passerelle SMTP par laquelle il faut passer.
- Accès au menu et aux options SMTP
- GO CFGTCP option 20 > 12
- Attributs SMTP du système
- CHGSMTPA [F4]
- MAILROUTER : mettre l’adresse du relais.
- ALWRLY : ne pas mettre *ALL ! Si *BOTH, utiliser ADDSMTPLE pour préciser les règles
- Ajout d’adresses acceptées (exemple) :
- ADDSMTPLE TYPE(*ACCEPT) INTNETADR('192.168.6.0') SUBNETMASK('255.255.255.0')
- Passerelle internet
- ADDDIRE USRID(INTERNET GATEWAY) USRD('Passerelle SMTP') SYSNAME(INTERNET) PREFADR(NETUSRID *IBM ATCONTXT)
- CHGDSTA SMTPRTE(INTERNET GATEWAY)
- Nosplit...
- CHGPOPA MSGSPLIT(*NOMAX)
- (Re)démarrer le serveur SMTP.
- ENDTCPSVR SERVER(*SMTP) (ou par iSeries Navigator).
- STRTCPSVR SERVER(*SMTP) (ou par iSeries Navigator).
Envoi manuel d’un texte simple
Commande SNDDST type *LMSG. Le texte peut comporter jusqu’à 5000 caractères.
SNDDST TYPE(*LMSG) TOINTNET(('victor.hugoàbigfoot.com')) DSTD('x') LONGMSG('Texte 5000 car.') SUBJECT('Objet')
Remarques :
- Remarquer le caractère à à la place de @
- DSTD ne doit pas rester vide, néanmoins ne sera pas utilisé.
- On peut ajouter des destinataires, y compris en CC et BCC.
Envoi manuel d’un fichier
Commande SNDDST *DOC.
- Copie dans un dossier
- Explication : la commande SNDDST ne connaît que QDLS, emplacement traditionnel des documents (commande WRKFLR).
- Attention : les noms de documents sont limités à 12 caractères.
- Fichier STREAM : exemple d’un PDF obtenu dans l’IFS : CPY OBJ('/tmp/MedecineScience.pdf') TOOBJ('/QDLS/exped/MedScien.pdf') DTAFMT(*BINARY) REPLACE(*YES)
- Noter le paramètre DTAFMT(*BINARY) pour le fichier PDF. Pour un fichier simple texte on aura TOCCSID(*PCASCII) DTAFMT(*TEXT).
- Fichier BD : CPYTOPCD FROMFILE(MABIBLIO/NOMFIC) TOFLR(EXPED) TODOC(NOM8CAR.TXT) REPLACE(*YES) TRNTBL(QUSRSYS/QA66BFA93)
- Noter le paramètre TRNTBL(QUSRSYS/QA66BFA93) : voir les pages des code WRKOBJ QUSRSYS/QA66*)
- Fichier spool : copie du dernier spool d’impression du travail en cours :
- Créer un fichier de travail : CRTPF MABIBLIO/TRAV RCDLEN(200)
- CPYSPLF FILE(nom_fichier) TOFILE(MABIBLIO/TRAV) SPLNBR(*LAST)
- Transfert dans le dossier : COPYTOPCD FROMFILE(MABIBLIO/TRAV) TOFLR(TRSFERT) TODOC(SPOOLXXX.TXT) REPLACE(*YES) TRNTBL(QUSRSYS/QA66BFA93)
- Changement de la description
- CHGDOCD DOC(MedScien.pdf) FLR(EXPED) DOCD('Envoi par l''AS/400')
- Explication : ce sera l’objet de l’eMail ; par défaut, c’est le nom du fichier qui est utilisé.
- Envoi
- SNDDST TYPE(*DOC) TOINTNET(('victor.hugoàbigfoot.com')) DSTD('Essais SMTP AS/400') MSG('(256 car. maxi) - cet eMail a ete envoye par l''AS/400') DOC(MedScien.pdf) FLR(TRSFERT)
POP, service de courrier par l’AS/400
Préambule
Utilisation du serveur intégré de l’ordinateur central IBM AS400/iSeries. Des utilisateurs de PC répertoriés sur l’AS400 peuvent s’envoyer réciproquement des « e-mail ». Des utilisateurs des sessions 5250 ordinaires sur AS400 peuvent aussi envoyer des messages aux PC, (y compris avec des fichiers en « pièce jointe »).
Préalables sur l’AS400 :
Le sous-système QSNADS doit être démarré.
Il faut un complément de configuration pour chaque identité qui sera utilisée, qu’il s’agisse d’un profil utilisateur AS400 ou pas : commande WRKDIRE [Entrée]. Si le profil ne figure pas dans la liste, il faut l’ajouter, (voir plus bas). Si le profil existe déjà dans la liste : entrer 2 (modifier), puis aller sur le sixième écran : "Niveau de service messagerie" : 2 (messagerie système). Ecran suivant : "Adresse de prédilection" : 3 (nom SMTP). Touche F19 (modifier nom SMTP) : si n’existe pas encore, un message demandera de frapper [Entrée]. Dans la zone "SMTP user ID", mettre le nom utilisateur en minuscules. Dans "SMTP domain", mettre : machine.monorg.fr
Ajout d’un profil dans le répertoire du système.
WRKDIRE [Entrée], Sur la première ligne : Opt : 1 (Ajouter), Id Util : id. utilisateur, Adresse : MACHINE [Entrée] Renseigner les zones suivantes : Description : nom ou autre indication, Nom et Groupe : MACHINE (rien dans le groupe), Profil utilisateur : id. utilisateur, Renseigner ensuite les informations indiquées au § 2. Valider la création par [Entrée]
Configuration sur le PC du logiciel client de messagerie
Exemple pour Outlook Express : Outils > Comptes > Ajouter > Courrier : entrer le « nom complet » (prénom + nom ou autre) > Suivant : cocher « j’ai déjà une adresse? » et entrer (id. AS400 en minuscules)@machine.monorg.fr (exemple pour id. utilisateur as400 "TATIANA" : tatiana@machine.monorg.fr) > Suivant : "Serveur de courrier sortant" entrer 10.100.1.1, idem pour "courrier entrant" > Suivant : nom du compte : id utilisateur ; mot de passe : celui de l’AS400, on peut ne rien mettre et décocher la zone "retenir?", dans ce cas le mot de passe sera demandé à chaque connexion avec le serveur. > Terminer.
Envoi d’un eMail à un autre utilisateur de l’AS400 : Pour un utilisateur "DUPONT", le destinataire devra être : dupont@machine.monorg.fr
Outillage rudimentaire pour envoyer des eMails depuis l’AS400
Utiliser les commandes décrites ci-dessous, ou OfficeVision : STROFC [Entrée], option 1, ou directement la commande SNDDST
La commande suivante permet d’envoyer à un utilisateur voulu un message de 256 caractères, avec un objet de 44. Un complément de 1024 caractères arrivera en pièce-jointe
ENVOI COURRIER INTRA-TESTUD (DMAIL) Indiquez vos choix, puis appuyez sur ENTREE. ID destinataire : . . . . . . . ________ Valeur alpha SYSTEME : . . . . . . . . . ASCHASSE Valeur alpha Descriptif/objet : . . . . . . . ____________________________________________ ______ Message : . . . . . . . . . . . ____________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ____________________________________________________ Texte long : . . . . . . . . . . '.'_________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ____________________________________________________________________ ... Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches
/* ENVOI D'UN COURRIER PAR AS400 */ CMD PROMPT('ENVOI COURRIER INTRA-TESTUD') PARM KWD(PUSRID) TYPE(*CHAR) LEN(08) MIN(1) + PROMPT('ID destinataire :') PARM KWD(PLIEU) TYPE(*CHAR) LEN(08) RSTD(*NO) + DFT(ASCHASSE) MIN(0) PROMPT('SYSTEME :') PARM KWD(PDSTD) TYPE(*CHAR) LEN(44) MIN(1) + CHOICE(OBJET) PROMPT('Descriptif/objet :') PARM KWD(PMSG) TYPE(*CHAR) LEN(256) + PROMPT('Message :') PARM KWD(LMSG) TYPE(*CHAR) LEN(1024) DFT('.') + PROMPT('Texte long :')
Le CL utilisé est le suivant :
/* PGM PARM(&PTYPE &PUSRID &PLIEU &PDSTD &PMSG &PJTE) */ PGM PARM(&PUSRID &PLIEU &PDSTD &PMSG &PJTE) DCL VAR(&PTYPE) TYPE(*CHAR) LEN(06) VALUE(*LMSG) DCL VAR(&PUSRID) TYPE(*CHAR) LEN(08) DCL VAR(&PLIEU) TYPE(*CHAR) LEN(08) DCL VAR(&PDSTD) TYPE(*CHAR) LEN(44) DCL VAR(&PMSG) TYPE(*CHAR) LEN(256) DCL VAR(&PJTE) TYPE(*CHAR) LEN(1024) SNDDST TYPE(&PTYPE) TOUSRID((&PUSRID &PLIEU)) + DSTD(&PDSTD) MSG(&PMSG) LONGMSG(&PJTE) MONMSG CPF0000 ENDPGM
Envoi d’un fichier AS400 en pièce jointe
COURRIER avec fichier joint (DMAILF) Indiquez vos choix, puis appuyez sur ENTREE. BIBLIOTHEQUE : . . . . . . . . . __________ Valeur alpha FICHIER : . . . . . . . . . . . __________ Valeur alpha SYSTEME : . . . . . . . . . ASCHASSE Valeur alpha ID destinataire : . . . . . . . ________ Valeur alpha Message : . . . . . . . . . . . ____________________________________________ ________________________________________________________________________________ ________________________________________________________________________________ ____________________________________________________ Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches
Commande
/* ENVOI D'UN COURRIER PAR AS400 AVEC FICHIER BD COMME PIECE-JOINTE */ CMD PROMPT('COURRIER avec fichier joint') PARM KWD(BIB) TYPE(*CHAR) LEN(10) MIN(1) + PROMPT('BIBLIOTHEQUE :') PARM KWD(FIC) TYPE(*CHAR) LEN(10) MIN(1) + PROMPT('FICHIER :') PARM KWD(SYS) TYPE(*CHAR) LEN(08) RSTD(*NO) + DFT(ASCHASSE) MIN(0) + PROMPT('SYSTEME :') PARM KWD(DEST) TYPE(*CHAR) LEN(08) MIN(1) + PROMPT('ID destinataire :') /* PARM KWD(OBJ) TYPE(*CHAR) LEN(44) MIN(0) + PROMPT('Descriptif/objet :') */ PARM KWD(MSG) TYPE(*CHAR) LEN(256) + PROMPT('Message :')
CL utilisé (noter qu’on met aussi une copie du fichier dans un dossier partagé TRANS de QDLS)
/* CE CL LIT UN */ /* FICHIER, ET L'ENVOIE SOUS FORME */ /* DE DISTRIBUTION OFFICEVISION RECUPERABLE PAR E-MAIL. */ /* PARAMETRES : - BIBLIOTHEQUE */ /* - FICHIER */ /* - SYSTEME (NORMALEMENT : ASCHASSE) */ /* - DESTINATAIRE. */ /* - OBJET : NON (SNDDST *DOC => OBJET = DOC) */ /* - MESSAGE */ PGM PARM(&BIB &FIC &SYS &DEST &MSG) DCL &BIB TYPE(*CHAR) LEN(10) DCL &FIC TYPE(*CHAR) LEN(10) DCL &SYS TYPE(*CHAR) LEN(08) DCL &DEST TYPE(*CHAR) LEN(08) DCL &OBJ TYPE(*CHAR) LEN(44) DCL &MSG TYPE(*CHAR) LEN(256) DCL &NOMF TYPE(*CHAR) LEN(12) CHGVAR &NOMF VALUE(&FIC *TCAT '.TXT') CHGVAR &OBJ VALUE(&FIC) CRTFLR TRANS MONMSG CPF0000 DLTDLO DLO(&FIC) FLR(TRANS) MONMSG CPF0000 CPYTOPCD FROMFILE(&BIB/&FIC) TOFLR(TRANS) TODOC(&FIC) MONMSG CPF0000 SNDDST TYPE(*DOC) TOUSRID((&DEST &SYS)) DSTD(&OBJ) + MSG(&MSG) SNDFMT(*NOCHG) DOC(&FIC) FLR(TRANS) MONMSG CPC9033 EXEC(GOTO CMDLBL(SUITE)) MONMSG CPF0000 /* CALL JOBMSG PARM('ANOMALIE : COURRIER NON ENVOYE') */ SUITE: DLTDLO DLO(&FIC) FLR(TRANS) MONMSG CPF0000 ENDPGM
Envoi sous forme texte d’un fichier spool d’impression dont on a récupéré au préalable les coordonnées (JOB, USER, NUMBER…)
Courrier avec etat-spool joint (DMAILS) Indiquez vos choix, puis appuyez sur ENTREE. Nom du travail . . . . . . . . . __________ NAME Utilisateur . . . . . . . . . . __________ USER Numéro du travail . . . . . . . ______ NUMBER Fichier spool . . . . . . . . . __________ NAME Numéro du fichier . . . . . . . *ONLY 0-9999, *ONLY SYSTEME : . . . . . . . . . . . ASCHASSE Valeur alpha DESTINATAIRE : . . . . . . . . . ________ Valeur alpha Chaine de recherche (facult.) . _________________ Fin F3=Exit F4=Invite F5=Réafficher F12=Annuler F13=Mode d'emploi invite F24=Autres touches
La chaîne de recherche correspond à une tentative pour automatiser l’envoi périodique de DSPLOG partiels sur un id. correspondant à des anomalies.
/* ENVOI D'UN LISTING PAR MAIL */ CMD PROMPT('Courrier avec etat-spool joint') PARM KWD(JOB) TYPE(*CHAR) LEN(10) MIN(1) + CHOICE('NAME') PROMPT('Nom du travail') PARM KWD(USER) TYPE(*CHAR) LEN(10) MIN(1) + CHOICE('USER') PROMPT('Utilisateur') PARM KWD(NUMBER) TYPE(*CHAR) LEN(6) MIN(1) + CHOICE('NUMBER') PROMPT('Numéro du travail') PARM KWD(FILE) TYPE(*CHAR) LEN(10) MIN(1) + CHOICE('NAME') PROMPT('Fichier spool') PARM KWD(SPLNBR) TYPE(*CHAR) LEN(5) DFT(*ONLY) + MIN(0) CHOICE('0-9999, *ONLY') + PROMPT('Numéro du fichier') PARM KWD(SYS) TYPE(*CHAR) LEN(08) RSTD(*NO) + DFT(ASCHASSE) MIN(0) PROMPT('SYSTEME :') PARM KWD(DEST) TYPE(*CHAR) LEN(08) MIN(1) + PROMPT('DESTINATAIRE :') PARM KWD(SEL) TYPE(*CHAR) LEN(16) PROMPT('Chaine + de recherche (facult.)')
/* CE CL LIT LE LISTING, LE TRANSFORME EN */ /* FICHIER, OPERE UNE SELECTION, ET ENVOIE LE RESULTAT SOUS FORME */ /* DE DISTRIBUTION OFFICEVISION RECUPERABLE PAR E-MAIL. */ /* PARAMETRES : */ /* */ PGM PARM(&JOB &USER &NUMBER &FILE &SPLNBR &SYS &DEST &SEL) DCL &JOB TYPE(*CHAR) LEN(10) DCL &USER TYPE(*CHAR) LEN(10) DCL &NUMBER TYPE(*CHAR) LEN(6) DCL &FILE TYPE(*CHAR) LEN(10) DCL &SPLNBR TYPE(*CHAR) LEN(5) DCL &SYS TYPE(*CHAR) LEN(08) DCL &DEST TYPE(*CHAR) LEN(08) DCL &SEL TYPE(*CHAR) LEN(16) DCL VAR(&JOBUS) TYPE(*CHAR) LEN(10) RTVJOBA USER(&JOBUS) /* CREE LE FICHIER TEMPORAIRE */ DLTF FILE(QTEMP/SPLTMP) MONMSG CPF0000 CRTPF FILE(QTEMP/SPLTMP) RCDLEN(192) SIZE(100000 32767) /* CREE LE FICHIER SPOOL */ CPYSPLF FILE(&FILE) TOFILE(QTEMP/SPLTMP) + JOB(&NUMBER/&USER/&JOB) SPLNBR(&SPLNBR) + MBROPT(*REPLACE) MONMSG MSGID(CPF3342) EXEC(DO) SNDMSG MSG('Les coordonnées ne correspondent à + aucun listing connu.') TOUSR(&JOBUS) ENDDO MONMSG MSGID(CPF3309) EXEC(DO) SNDMSG MSG('Rien a lister. + ') TOUSR(&JOBUS) ENDDO /* MENAGE */ DLTF QS36F/DG.LOG MONMSG CPF0000 CPYF QTEMP/SPLTMP QS36F/DG.LOG CRTFILE(*YES) DLTF FILE(QTEMP/SPLTMP) MONMSG MSGID(CPF0000) /* DLTSPLF FILE(*SELECT) SELECT(*CURRENT *ALL *ALL &REF) */ DLTF QS36F/DG.TXT MONMSG CPF0000 IF COND(&SEL *NE *BLANK) THEN(DO) CPYF QS36F/DG.LOG QS36F/DG.TXT CRTFILE(*YES) + INCCHAR(*RCD 1 *CT &SEL) ENDDO ELSE CPYF QS36F/DG.LOG QS36F/DG.TXT CRTFILE(*YES) DMAILF BIB(QS36F) FIC(DG.TXT) SYS(&SYS) DEST(&DEST) MSG('ETAT AS400, + VOIR PIECE-JOINTE') MONMSG CPF0000 DLTF QS36F/DG.LOG MONMSG CPF0000 DLTF QS36F/DG.TXT MONMSG CPF0000 FIN: ENDPGM
Cette version permet aussi d’envoyer un listing, mais concernant le job en cours : à faire lancer en batch dans la foulée par ledit job.
/* CE CL LIT LE LISTING QUI VIENT D'ETRE SORTI, LE TRANSFORME EN */ /* FICHIER, OPERE UNE SELECTION, ET ENVOIE LE RESULTAT SOUS FORME */ /* DE DISTRIBUTION OFFICEVISION RECUPERABLE PAR E-MAIL. */ /* PARAMETRES : - REFERENCE (EX : QPDSPLOG POUR UN DSPLOG, */ /* - SYSTEME (NORMALEMENT : ASCHASSE) */ /* - DESTINATAIRE. */ /* - CHAINE DE SELECTION. */ /* */ PGM PARM(&REF &SYS &DEST &SEL) DCL &REF TYPE(*CHAR) LEN(10) DCL &SYS TYPE(*CHAR) LEN(08) DCL &DEST TYPE(*CHAR) LEN(08) DCL &SEL TYPE(*CHAR) LEN(16) CALL MGNEW/DGCPYSPLF PARM(&REF QS36F DG.LOG) /* DLTSPLF FILE(*SELECT) SELECT(*CURRENT *ALL *ALL &REF) */ DLTF QS36F/&REF MONMSG CPF0000 IF COND(&SEL *NE *BLANK) THEN(DO) CPYF QS36F/DG.LOG QS36F/&REF CRTFILE(*YES) + INCCHAR(*RCD 1 *CT &SEL) ENDDO ELSE CPYF QS36F/DG.LOG QS36F/&REF CRTFILE(*YES) DMAILF BIB(QS36F) FIC(&REF) SYS(&SYS) DEST(&DEST) MSG('ETAT AS400, + VOIR PIECE-JOINTE') MONMSG CPF0000 DLTF QS36F/DG.LOG MONMSG CPF0000 DLTF QS36F/&REF MONMSG CPF0000 FIN: ENDPGM
DGCPYSPLF, module utilisé par les précédents
/* TRANSFORME UN ETAT EN FICHIER */ /* */ PGM PARM(&REFER &LIB &FIC) /* DECLARE LES PARAMETRES */ DCL VAR(&JOBNM) TYPE(*CHAR) LEN(10) DCL VAR(&JOBUS) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNB) TYPE(*CHAR) LEN(06) DCL VAR(&SPLNM) TYPE(*CHAR) LEN(10) DCL VAR(&SPLNB) TYPE(*CHAR) LEN(05) DCL VAR(&REFER) TYPE(*CHAR) LEN(10) DCL VAR(&TITRE) TYPE(*CHAR) LEN(40) DCL VAR(&LIB ) TYPE(*CHAR) LEN(10) DCL VAR(&FIC ) TYPE(*CHAR) LEN(10) /* ZONES DE TRAVAIL */ MONMSG MSGID(CPF2105) RTVJOBA JOB(&JOBNM) USER(&JOBUS) NBR(&JOBNB) CHGVAR VAR(&SPLNB) VALUE('*LAST') IF COND(&REFER *EQ *BLANK) THEN(CHGVAR VAR(&REFER) VALUE('LISTING')) IF COND(&TITRE *EQ *BLANK) THEN(CHGVAR VAR(&TITRE) VALUE(&REFER)) CHGVAR VAR(&SPLNM) VALUE(&REFER) /* CREE LE FICHIER TEMPORAIRE */ DLTF FILE(QTEMP/SPLTMP) MONMSG CPF0000 CRTPF FILE(QTEMP/SPLTMP) RCDLEN(192) SIZE(100000 32767) /* CREE LE FICHIER SPOOL */ CPYSPLF FILE(&SPLNM) TOFILE(QTEMP/SPLTMP) + JOB(&JOBNB/&JOBUS/&JOBNM) SPLNBR(&SPLNB) + MBROPT(*REPLACE) MONMSG MSGID(CPF3342) EXEC(DO) SNDMSG MSG('Les coordonnées ne correspondent à + aucun listing connu.') TOUSR(&JOBUS) ENDDO MONMSG MSGID(CPF3309) EXEC(DO) SNDMSG MSG('Rien a lister. + ') TOUSR(&JOBUS) ENDDO /* MENAGE */ DLTF &LIB/&FIC MONMSG CPF0000 CPYF QTEMP/SPLTMP &LIB/&FIC CRTFILE(*YES) DLTF FILE(QTEMP/SPLTMP) MONMSG MSGID(CPF0000) ENDPGM
Examen et récupération directe des eMails
L’OS400 crée un répertoire correspondant au destinataire dans l’IFS. Avec WRKLNK, on peut visiter /QTCPTMM/MAIL
Gestion des liens d'objet Répertoire . . . . : /QTCPTMM/MAIL/CHAIGNEA Indiquez vos options, puis appuyez sur ENTREE. 3=Copier 4=Enlever 5=Niveau suivant 7=Rebaptiser 8=Afficher les attributs 11=Modifier répertoire en cours... Opt Lien objet JW580146.NOT Fin Paramètres ou commande ===> F3=Exit F4=Invite F5=Réafficher F9=Rappel F12=Annuler F17=A partir de F22=Zone complète F23=Autres options
Avec CPYFRMSTMF, l’objet peut être transféré dans un membre de fichier quelconque (dans cet exemple on le met dans DIV, membre de QCLSRC de la bibliothèque GUD) :
===> CPYFRMSTMF FROMSTMF('/QTCPTMM/MAIL/CHAIGNEA/JW580146.NOT') TOMBR('/QSYS.LIB/GUD.LIB/QCLSRC.FILE/DIV.MBR') MBROPT(*REPLACE)
Un CL pour faire le même travail :
PGM PARM(&USR &NUM &BIB &FIC &MBR) DCL &USR TYPE(*CHAR) LEN(10) DCL &NUM TYPE(*CHAR) LEN(16) DCL &CHAINF TYPE(*CHAR) LEN(64) DCL &BIB TYPE(*CHAR) LEN(10) DCL &FIC TYPE(*CHAR) LEN(10) DCL &MBR TYPE(*CHAR) LEN(10) DCL &CHAINT TYPE(*CHAR) LEN(64) CHGVAR VAR(&CHAINF) VALUE('/QTCPTMM/MAIL/' *TCAT &USR *TCAT + '/' *TCAT &NUM *TCAT '.NOT') CHGVAR VAR(&CHAINT) VALUE('/QSYS.LIB/' *TCAT &BIB *TCAT '.LIB' + *TCAT '/' *TCAT &FIC *TCAT '.FILE/' *TCAT &MBR *TCAT '.MBR') CPYFRMSTMF FROMSTMF(&CHAINF) + TOMBR(&CHAINT) + MBROPT(*ADD) MONMSG CPF0000 ENDPGM
Le résultat, qui montre le goût croissant des utilisateurs pour la communication moderne. L’objet ligne 5, L’expéditeur ligne 9, le destinataire ligne 11, le texte lignes 21-24. Le premier est lyonnais, le second à l’agence 44 (Loire Atlantique).
Received: by ASCHASSE.TESTUD.FR (IBM AS/400 ANYMAIL/400 MIME V4R1M0) Tue, 18 Sep 2001 16:58:01 +0000 MIME-Version: 1.0 Date: Tue, 18 Sep 2001 16:58:01 +0000 Message-Id: <441BC0A0109181657520000000001@ASCHASSE.TESTUD.FR> Subject: OL 4 FCN 1 DESOLE Sensitivity: none Priority: normal Importance: normal From: martin@ASCHASSE.TESTUD.FR X-From-OFFICEVISION: <MARTIN ASCHASSE> To: chaignea@ASCHASSE.TESTUD.FR Content-Type: multipart/mixed; boundary="PART.BOUNDARY.1" > THIS IS A MESSAGE IN 'MIME' FORMAT. Your mail reader does not support MIME. > You may not be able to read some parts of this message. --PART.BOUNDARY.1 Content-ID: <1_1> Content-Type: text/plain; charset=ISO-8859-1 OL 4 FCN 1 DESOLE --PART.BOUNDARY.1--