Ich kann dir ein paar Tipps geben wie es in Lotus-Script funktioniert:
1. man muss "Session.ConvertMime = false" setzen
2. das Setzen eines "Content-Type" Headers scheint nicht immer richtig zu funktinieren
3. Zum Schluss unbedingt closeMimeEntity aufrufen (vergisst man dies, stürzt gerne der client ab)
4. wenn alles getan ist, sollte man ConvertMime wieder auf den ursprünglichen Wert wiederherstellen
ich hab mal ein paar Codeschnipsel auf das Wesentliche zusammenkopiert. Hier erzeuge ich mein root-mime folgendermaßen:
convertStatus = session.ConvertMime
session.ConvertMime = false
' ... Wurzelknoten anlegen
Set rootMime = doc.CreateMIMEEntity(itemName)
Set stream = session.CreateStream()
Call stream.WriteText("This is a multipart message in MIME format.")
Call rootMime.SetContentFromText(stream, "multipart/related", ENC_NONE )
' ... Knoten mit Bodytext
Set contentMime = rootMime.CreateChildEntity()
stream.Position = 0
Call contentMime.SetContentFromText(stream, "multipart/alternative", ENC_NONE )
' ... einmal als Plaintext
Set textMime = contentMime.CreateChildEntity()
Set stream = session.CreateStream()
Call stream.WriteText("plaintextMessage")
Call textMime.SetContentFromText(stream, "text/plain", ENC_IDENTITY_8BIT )
Call stream.Close
' .... und einmal als HTML
Set htmlMime = contentMime.CreateChildEntity()
Set stream = session.CreateStream()
Call htmlMime.SetContentFromText(stream, {text/html; charset="utf-8"}, ENC_NONE)
Call htmlMime.EncodeContent(ENC_QUOTED_PRINTABLE)
' .... Anhang bzw. Bilder erstellen(optional)
Set mimePart = rootMime.CreateChildEntity()
Set mimeData = session.CreateStream()
Call mimeData.WriteText(base64content)
Call mimePart.SetContentFromText(mimeData, "image/" +imagetype, ENC_BASE64)
Call mimePart.CreateHeader("Content-ID").SetheaderVal("<bild1@mydomain>")
' ... über <img src="cid:bild1@mydomain"> kann dieses Bild ggf in die Mail eingebettet werden
Call doc.CloseMIMEEntities(True, itemName)
' ab jetzt darf nicht mehr auf diese Mimeparts zugegriffen werden
' ganz zum Schluss (am Besten nach dem Speichern)
session.ConvertMime = convertStatus
Die Mail (bzw. das mime-item) hat dann folgenden Aufbau
+ multipart/related
+ multipart/alternative (es wird der letzte Part, sowit unterstützt, angezeigt)
+ text/plain
+ text/html
+ image/gif (optional)
Vielleicht kannst du obigen Code auf Java adaptieren...
p.S. Passt man beim Umgang mit MimeEntities nicht auf, bekommt man u.U. Dokumente, welche man nicht mehr öffnen/löschen oder sonstwas kann. Wenn hier wer eine Lösung hat, wie man diese Dokumente wieder los wird, wäre ich sehr daran interessiert :-)