Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: masseur81 am 28.10.13 - 12:53:04

Titel: MIME Entity vs. Embedded Objects?
Beitrag von: masseur81 am 28.10.13 - 12:53:04
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.
Titel: Re: MIME Entity vs. Embedded Objects?
Beitrag von: umi am 28.10.13 - 14:42:23
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.
Titel: Re: MIME Entity vs. Embedded Objects?
Beitrag von: masseur81 am 30.10.13 - 19:35:15
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?
Titel: Re: MIME Entity vs. Embedded Objects?
Beitrag von: masseur81 am 30.10.13 - 20:49:26
Okay, Namen setzen bei MIME Entity geht doch über Content-Disposition-Header.
Titel: Re: MIME Entity vs. Embedded Objects?
Beitrag von: pram am 30.10.13 - 23:15:05
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)
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