PDA

View Full Version : Problem mit SNDDST im CL-Prpgramm



AK1
20-02-14, 12:56
Hallo,

wer hat einen Tipp?
Und Danke im voraus.

Der Befehl SNDDST am Bildschirm eingegeben funktioniert.


Im CL mit Parametersteuerung habe ich Probleme.


Es werden 2 Parameter (Emailadresse des Empfängers und ein Langtext) übergebeben.
50 und 80 Stellen Alpha. Der Fehler ist der Langtext wird der Emailadresse angefügt. Obwohl zwei unterschiedliche Parameter. Deshalb stimmt die Emailadresse des Adressaten nicht.


Hier das CL:
PGM PARM(&ADR1 &MSG1)
/* DEKLARATIONEN */
DCL VAR(&ADR1) TYPE(*CHAR) LEN(50)
DCL VAR(&MSG1) TYPE(*CHAR) LEN(80)
/* FÜR TEST FIX */
CHGVAR VAR(&ADR1) VALUE('A.KUEHN@Koenigmetall.com')
CHGVAR VAR(&MSG1) VALUE('TEST VOM 20.02.2014')
/* */
SNDDST TYPE(*LMSG) +
TOINTNET(&ADR1) +
DSTD('TEST mail') LONGMSG('test SNDDST +
königmetall MIT ADR1') SUBJECT('Mail System AS/400')
/* */
ENDE: ENDPGM

Hier das Ergebnis:
NOT ABLE TO DELIVER MAIL TO SOME/ALL RECIPIENTS.
REPLY CODES WITH FIRST DIGIT = '4' OR '5' ARE ERROR REPLIES.
ERRORS THAT DO NOT HAVE ERROR REPLY CODES MAY EXIST.

HOST S06BA7DT NOT ABLE TO DELIVER MAIL TO FOLLOWING RECIPIENT(S):
<A.KUEHN@Koenigmetall.comTESTVOM20.02.20>
MAIL REJECTED BY Koenigmetall WITH THE MESSAGE:
550 5.7.1 Unable to relay

** TEXT OF MAIL FOLLOWS **
Received: by S06BA7DT.KOENIGMETALL.COM (IBM OS/400 ANYMAIL/400 MIME V5R4M0) Thu, 20 Feb 2014 13:18:42 +0100
MIME-Version: 1.0
Date: Thu, 20 Feb 2014 13:18:42 +0100
Message-Id: <06BA7DT1402201318370000000043@S06BA7DT.KOENIGMETAL L.COM>
Subject: Mail System AS/400
Sensitivity: none
Priority: normal
Importance: normal
From: A.Kuehn@KOENIGMETALL.COM
X-From-OFFICEVISION: <AKUEHN AS400 >
To: A.KUEHN@Koenigmetall.comTESTVOM20.02.20
Content-Type: multipart/mixed;
boundary="PART.BOUNDARY.1"

--PART.BOUNDARY.1
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable


test SNDDST k=F6nigmetall MIT ADR1=


--PART.BOUNDARY.1--

Fuerchau
20-02-14, 13:05
Dies deutet (wie immer) auf einen Aufruffehler hin.
Du erwartest 50 und 80 Zeichen, also musst du dies auchso übergeben, ansonsten wird eben Schrott verarbeitet:

call myPgm parm('xxxx....50....xxxx' 'yyyyy....80.....yyyy')

Entweder du schreibst ein kleines CMD drumrum, dass immer für die korrekt Übergabe sorgt oder du übergibst eben korrekte Inhalte.

Wenn dein Programm aus anderen Programmen aufgerufen wird, besteht das problem meist nicht, sondern nur beim Test über die Kommandozeile:).

Pikachu
20-02-14, 14:18
Ändere mal PGM PARM(&ADR1 &MSG1) in PGM und probiers damit nochmal. Wenn's damit geht, liegt der Fehler an der Parameterübergabe beim Aufruf von der Befehlszeile oder einem SBMJOB aus.

Fuerchau
20-02-14, 15:21
Welche Änderung soll das sein?
Den Grund habe ich doch schon beschrieben:).

Pikachu
20-02-14, 15:49
Ein "Bild" sagt manchmal aber mehr als 1000 Worte. ;)