PDA

View Full Version : ... mal wieder SNDDST ...



ebschubert
11-02-09, 09:02
Hallo @ all :)

Folgendes Problem:
Versenden von Mails via SNDDST.
Funzt soweit alles - bis auf die Kleinigkeit, dass im Betreff (Subject) die Umlaute falsch umgesetzt werden.
Der Bodytext ist dagegen ok!

Der empfangene Mailheader - Outlook:

Subject: =?us-ascii?B?/Pz8/A==?=
QCCSID steht auf 273
QCHRID steht auf 697/273

Hat jemand einen Rat?

Vielen Dank vorab :)

Fuerchau
11-02-09, 09:04
Da stellt sich die Frage:
Woher beziehst du den Text für Subject ?

ebschubert
11-02-09, 09:06
habe für den Test ein kleines CLP geschrieben und gebe dort nativ 'üöß..' etc. für &subject ein.

Fuerchau
11-02-09, 09:40
Dann ist das ja auch kein Wunder.
Wenn du dein CLP erstellst, wird der Code von der CCSID der Source in die CCSID deines Jobs umgewandlet, Compiletime!!!

Wenn dein Programm geladen wird, erfolgt KEINERLEI Umwandlung mehr, da der Text nun zum Code gehört.

Damit wir der Text so wie er zur Compilezeit codiert wurde an das Kommando weitergegeben und zwar unabhängig von der aktuellen Job-CCSID.
Das System geht nämlich immer davon aus, dass sprachabhängige Texte im Job grundsätzlich in der JOB-CCSID vorliegen, egal woher sie kommen (z.B. beim Lesen aus der DB wird ja umgewandelt.)

Prüfe also mal die CCSID der Source und die CCSID deines Jobs zur Umwandlungszeit.

ebschubert
11-02-09, 09:53
.... die Source steht auf 273

und beim Kompilieren habe ich jetzt explizit LANGID DEU angegeben

... die Umlaute immer noch Mist!!!

Fuerchau
11-02-09, 15:25
Ich habe jetzt auch mal getestet.
Im SUBJECT dürfen anscheinend keine Sonderzeichen stehen.
Wenn ich da was sende, wird hier jedes Sonderzeichen durch "X" ersetzt.

Das liegt ggf. aber am Mailserver, der die Mail weiterleitet.
Hier ist z.B. LotusNotes im Spiel.

Deine Text deutet auf ein Umsetzungsproplem hin, wenn die Zeichen nicht aus dem "us-Ascii"-Satz stammen.

Fuerchau
12-02-09, 13:44
Nachtrag:
SUBJECT wird nicht im MIME-Format von der AS/400 ausgegeben sondern als ASCII.
Daher sind i.W. eben nur amerikanische Zeichen erlaubt.
Der Langtext (MessageBody) wird in MIME übersetzt und deshalb funktioniert da auch alles.