NetData : comment contrôler la syntaxe d'un e-mail

PGM PARM(&INT &OK)
DCL VAR(&INT) TYPE(*CHAR) LEN(100)
DCL VAR(&OK) TYPE(*CHAR) LEN(1)
DCL VAR(&CP1) TYPE(*DEC) LEN(3) VALUE(1)
DCL &CP2 *DEC 3
/* RECHERCHE @ */
BOUCLE1:
IF COND(%SST(&INT &CP1 1) *EQ '@') THEN(DO)
IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR)
CHGVAR &CP1 (&CP1 + 1)
GOTO BOUCLE2
IF COND(&CP1 = 100) THEN(DO)
GOTO ERREUR
ENDDO
ELSE DO
CHGVAR &CP1 (&CP1 + 1)
GOTO BOUCLE1
ENDDO
/* RECHERCHE . */
BOUCLE2:
IF COND(%SST(&INT &CP1 1) *EQ '.') THEN(DO)
IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR)
CHGVAR &CP1 (&CP1 + 2)
GOTO BOUCLE3
ENDDO
IF COND(&CP1 = 100) THEN(DO)
GOTO ERREUR
ENDDO

CHGVAR &CP1 (&CP1 + 1)
GOTO BOUCLE2
ENDDO
/* AU MOINS DEUX CARACTERES APRES LE . */
BOUCLE3:
IF COND(%SST(&INT &CP1 1) *EQ ' ') THEN(GOTO ERREUR)
CHGVAR &OK 'O'
GOTO FIN
ERREUR:
CHGVAR &OK 'N'
FIN:
SNDMSG MSG(&OK) TOUSR(*REQUESTER)
ENDPGM

PLB