Domino 9 und frühere Versionen > ND8: Entwicklung
NotesMIMEEntity und text/plain auslesen
magic_halli:
Hi,
ich sitze grad an einem Problem in Bezug auf text/plain von MIME-Mails auszulesen, also den eigentlichen Mailtext. Irgendwie komme ich hier nicht recht weiter! :(
Es ist doch so, dass der Aufbau vom MIME-Item 'body' normalerweise so aussieht (lt. Recherche):
--- Code: ---+ multipart/related
+ multipart/alternative
+ text/plain
+ text/html
+ image/gif
+ image/jpeg
--- Ende Code ---
Das ist aber nicht immer so, oder? Ich habe hier ne Mail, deren MIME-Item 'body' so aussieht:
--- Code: ---+ multipart/related
+ multipart/alternative
+ multipart/related
+ text/plain
+ text/html
+ image/gif
+ image/jpeg
--- Ende Code ---
Jetzt frag ich mich, wie ich allgemeingültig den text/plain auslesen kann, wenn dieser nun doch offensichtlich in verschiedenen Ebenen vorkommen kann?! Oder ist diese Mail nur ein "Ausreiser" - warum auch immer?
Bisher lese ich text/plain so aus:
--- Code: --- Set mime = doc.GetMIMEEntity
If Not(mime Is Nothing) Then
If mime.ContentType = "multipart" Then
Set child = mime.GetFirstChildEntity
' Child´s durchgehen
While Not(child Is Nothing)
If child.ContentType = "multipart" Then
Messagebox "Hier text/plain auslesen:"
Set ch = child.GetFirstChildEntity
If ch.ContentType = "text" And ch.ContentSubType = "plain" Then
Messagebox "ContentAsText vom Mail-body : " & ch.ContentAsText
End If
Set ch = ch.GetNextSibling
End If
Set child = child.GetNextSibling
Wend
End If
End If
--- Ende Code ---
Wenn jemand sowas schonmal gemacht hat, oder weiß wie´s geht... wie liest man denn bitteschön den text/plain einer Mail korrekt aus?
Mein Code sollte doch so erstmal richtig sein?
Danke und Gruß
Rico.
magic_halli:
Haaaa... ;D
Ich bin durch Zufall auf einen 3-Zeiler in der Hilfe gestoßen, der all meine Sorgen löst, denn nun wird korrekt der Mailtext ausgelesen - egal wo text/plain in der MIME-Struktur steht!!!
--- Code: ---Set mime = doc.GetMIMEEntity
If Not(mime Is Nothing) Then
' multipart:
If mime.ContentType = "multipart" Then
Set child = mime.GetFirstChildEntity
' -----aus DominoHilfe:-----
While Not(child Is Nothing)
Set mime = child
Set child = mime.GetFirstChildEntity
Wend
' ---------------------------
If mime.ContentType = "text" And mime.ContentSubType = "plain" Then
body = mime.ContentAsText
Messagebox "MIME-Body : " & body
End If
End If
End If
--- Ende Code ---
Geil, die Ausgabe ist nun korrekt! Fast... ;)
Ich muss nun nur noch die Formatierung des 'mime.ContentAsText' anpassen.
Sprich: Bspw. wird ein 'ü' als '=FC', ein 'ß' als '=DF' usw. zurückgeliefert!
Mh, nach welchen Stichwörtern muss ich schauen, um die Formatierung korrekt anzupassen???
Rico.
m3:
Seufz. Das nennt sich Base64 - Forumssuche sollte Dir weiterhelfen.
Was machst Du, wenn es mehrere text/plain Teile in der Mail gibt?
http://www.ietf.org/rfc/rfc2045.txt
http://www.ietf.org/rfc/rfc2046.txt
http://www.faqs.org/rfcs/rfc2822.html
magic_halli:
--- Zitat ---Was machst Du, wenn es mehrere text/plain Teile in der Mail gibt?
--- Ende Zitat ---
Omg, ist das so? Mh, dann... ???
Ich hab bisher jedoch noch keine einzige Mail hier gesehen, wo das so ist... läuft dann wohl unter dem Stichwort "Glück gehabt"?! ;)
Ich werd jetzt erstmal die Base64-Sache angehen, um damit wenigstens grundsätzlich meine Mailgeschichte abgedeckt zu haben...
Rico.
m3:
Guckst Du:
http://atnotes.de/index.php/topic,44252.0.html
http://atnotes.de/index.php/topic,44184.0.html
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln