Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino
MIME Entity vs. Embedded Objects?
(1/1)
masseur81:
Hallo,
ich pflege ein Java-Framework, welches es unter Nutzung der Java Notes API ermöglicht, ein objektorientiertes Mapping auf Notes-Dokumente und -Views zu automatisieren. Das läuft nun schon seit einigen Jahren erfolgreich und ich arbeite nun an einer neuen Version.
Probleme bereiten mir nachwievor Attachments. Ich möchte gerne Anhänge (BLOBs, CLOBs) in Notes-Dokumenten unterbringen. Ich habe hier folgende Möglichkeiten: MIME Entities und Embedded Objects (letztere am Dokument oder an einem RichText-Feld). Was ist aber genau der Unterschied? Wann sollte ich was verwenden? Das ist mir leider bisher immer noch nicht klar geworden.
Ich wär für eine kleine Hilfestellung sehr dankbar.
umi:
Hallo
In einem normalen Notesdokument werden die Attachments an ein Notes RichtextItem gehängt. Dies endet dann als Embedded Object vom Type Attachment.
Mime Entities werden im Zusammenhang mit SMTP Emails verwendet, wenn z.B. formatierte Mails mit Inline Bildern im Notes eintreffen, sind diese im Normalfall als MIME Mails vorhanden und man kann mit den Mime Entities arbeiten.
Meiner meinung nach sollte im Normalfall das Arbeiten mit den Richtext.EmbeddedObjects in den meisten Fällen ausreichen.
masseur81:
Danke. Ist es richtig, dass Attachments im Form von EmbeddedObjects nur als Dateien importiert werden können, d.h. steht mir ein InputStream bereit, so muss ich die Bytes erst (umständlich) aufs Dateisystem ablegen (Java2-Security-Policies ggf. erforderlich)? Einen MIME-Type kann ich dabei nicht mit dazu ablegen? Dafür kann ich den Namen frei wählen, was bei MIMEEntities nicht geht?
masseur81:
Okay, Namen setzen bei MIME Entity geht doch über Content-Disposition-Header.
pram:
MIME-Entities sind zwar sehr "zerbrechlich" => http://atnotes.de/index.php?topic=52040.0
aber auch deutlich einfacher zu handhaben, wenn man die Datei nicht im Filesystem ablegen will.
Ausserdem kann man die Datei "verstecken", das heißt sie liegt nicht als Symbol am Ende des Dokuments.
(Anhänge in Richtextfeldern erscheinen immer unten im Dokument, selbst bzw. insbesondere wenn es das Feld nicht in der Maske gibt)
Dazu muss man als "Content-Disposition" einen Header angeben der mit "x-" beginnt. In LotusScript ginge das so:
--- Code: --- Call mimeItem.CreateHeader("Content-Disposition").SetheaderValAndParams({x-mystream; filename="}+itemName+{"})
Call mimeItem.SetContentFromText(bufferStream.getNotesStream(), "text/plain; charset=""utf-8""", ENC_NONE)
--- Ende Code ---
Bei Schreiben von Text oder XML unbedingt ein Charset angeben!
Ich arbeite zwar hauptsächlich mit LS, denke aber, dass die Infos aus dem Artikel oben auch für Java gelten
Gruß
Roland
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln