Domino 9 und frühere Versionen > ND8: Entwicklung
Email-Kodierung und Umlaute
hampa:
Hallo zusammen,
Ich bin am Verzweifeln. Bei der Aufgabe, die ich lösen soll geht es um folgendes:
Ich erhalten von einem Email-Absender (kein Notes-Email) eine Email und speise diese in eine Mail-In Datenbank auf meinem Server ein. Umlaute werden wie folgt übersetzt (ü --> =FC)
Bei Content-Tranfer-Encoding steht in der Header-Infomartion des Body-Abschnitts "quoted printable" obwohl mir der Absender der Email einen Ausdruck des Quell-Textes der gesendeten Email überlassen hat, indem als Content-Tranfer-Encoding 7bit ausgewiesen wird.
Ich muss aus dem Email-Text eine neue Email erstellen und diese weiterschicken. Leider bleiben die Kodierten Zeichen weiterhin codiert. Das steht in der neuen Email "Gr=FCsse".
Wie bringe ich dem System bei, dass es entweder beim Empfangen von codiertem Text diesen als dekodierten Text ins Body Feld speichert? Oder muss ich während es erstellens der neuen Email etwas beachten?
Die erhaltenen Email lese ich übrigens als MIME-Email aus und erstelle die neue Email ebenfalls mit MIME.
Vielen Dank für jeden Tipp
Grüsse
Hampa
m3:
"einspeisen"? Manuell mit Code?
Pls. explain.
Und zeig mal den anonymiserten Source der Mail her.
hampa:
Hallo Martin
Mit "einspeisen" meinte ich, dass ich einen "Mail-In Database" Eintrag (Dokument) erstellt habe, der mir Emails, die an eine darin definierte Email adressiert sind an die definierte Datenbank schickt und aus dieser Email ein Dokument mit der Form "Memo" in der Datenbank erstellt.
In diesem Dokument befinden sich nun vier Body-Felder mit folgendem Inhalt:
--- Code: ---Body-Feld-1:
"Content-Type: multipart/mixed;
boundary="----=_Part_1050_33530222.1331648857364"
"
Body-Feld-2:
"------=_Part_1050_33530222.1331648857364
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;charset=iso-8859-1
<CustomerEmail>
<Application>CF</Application>
<To>hans.Muster@test.com</To>
<Subject>Ich bin das Subject</Subject>
<Body><br><br>Anbei der Kommentar zur offenen Frage zum Thema Rechnungstell=
ung.
Beste Gr=FCsse<br><br></Body>
<MailTime>TimeStamp</MailTime>
</CustomerEmail>"
Body-Feld-3:
"
------=_Part_1050_33530222.1331648857364
Content-Type: audio/x-wav;
name=Voice-File-33.wav
Content-Disposition: attachment;
filename=Voice-File-33.wav
Content-Transfer-Encoding: base64
Voice-File-33.wav"
Body-Feld-4:
"
------=_Part_1050_33530222.1331648857364--
"
--- Ende Code ---
Aus diesen Angaben, die im XML verpackt sind, muss ich nun ein neues Email zusammenstellen und weiterschicken. Das Problem ist jetzt, wie ich auch den Codierten Umlauten und "Zeilenenden" den korrekten Text bekomme.
Gruss und Dank
Hampa
Peter Klett:
Merkwürdig, saß am Wochenende genau an dem gleichen Problem, habe es innerhalb meines Scriptes schlicht mit Replace übersetzt. Hatte als Grundlage das Tool RTF2HTML von nsftools. Hier mein Codefetzen dazu
Dim suchenersetzen List As String
suchenersetzen ("=" & Chr (13) & Chr (10)) = ""
suchenersetzen ("=E4") = "ä"
suchenersetzen ("=F6") = "ö"
suchenersetzen ("=FC") = "ü"
suchenersetzen ("=C4") = "Ä"
suchenersetzen ("=D6") = "Ö"
suchenersetzen ("=DC") = "Ü"
suchenersetzen ("=DF") = "ß"
suchenersetzen ("=A7") = "§"
suchenersetzen ("=E9") = "é"
suchenersetzen ("=3D") = "="
Forall se In suchenersetzen
mText = Replace (mText, Listtag (se), se)
End Forall
Die Liste der zu ersetzenden Zeichen kann natürlich beliebig verändert werden. Evtl. verwendest Du auch UChr, um plattformunabhängig zu sein.
pram:
Liest du die Mime-Items über XML oder über die NotesMimeItems aus?
Wenn letzteres, müsstest du mit mimentity.decodeContent/...encodeContent(ENC_NONE) eigentlich zum Ziel kommen.
Die Lösung von Peter würd ich nur machen, wenn es nicht anders geht (irgend ein Zeichen vergisst man ja immer in der Übersetzungstabelle und irgendwann stellt der Absender das Encoding um)
Werbung ;D : Folgendes auch unbedingt lesen: http://atnotes.de/index.php/topic,52040.msg334799.html (falls noch nicht geschehen)
Gruß
Roland
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln