Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pram am 19.10.10 - 18:47:31

Titel: Mime-Entity und Attachment
Beitrag von: pram am 19.10.10 - 18:47:31
Hallo zusammen, ich versuche in ein NotesMimeEntity ein Attachment anzufügen:

Code
Dim mimePart     As NotesMIMEEntity                                              ' content-teil mit der ID myAttachment.zip anlegen
Set mimePart     =  rootMime.CreateChildEntity() ' neuen Mime-Part für AttachmentDaten
Call mimePart.CreateHeader("Content-Disposition").Setheaderval({attachment; filename=myAttachment.zip"})
Call mimePart.CreateHeader("Content-ID").SetheaderVal("<myAttachment.zip>")    
Call mimePart.SetContentFromText(mimeData, {application/x-zip-compressed; name="myAttachment.zip"}, ENC_BASE64)

call stream.WriteText("<a href=cid:myAttachment.zip>Ich bin ein Attachment</a>") ' ins HTML einen Link auf den Content mit der ID myAttachment.zip erstellen
Call htmlMime.SetContentFromText(stream, {text/html; charset="utf-8"}, ENC_NONE)

Dies klappt soweit auch, allerdings geht der Name des Attachments verloren, wenn ich es mit dem Browser runter laden möchte.
über http://server/.../.../.../Body?OpenField wird mir das Dokument angezeigt. Der Link <a href="cid:..."> wird von Notes auch korrekt übersetzt und zeigt auf http://server/.../.../.../Body/M3?OpenElement
Dies wäre auch der richtige Anhang, nur beim Download schlägt mir der Browser immer M3 bzw. M3.zip als Download vor.
Ich schaff es nicht, den Dateinamen zu übergeben.
Wenn ich den Link manuell im Browser so eingebe:
http://server/.../.../.../Body/M3/myAttachment.zip?OpenElement dann würde der Name vorgeschlagen, allerdings klappt ein
Code
call stream.WriteText("<a href=cid:myAttachment.zip/myAttachment.zip>Ich bin ein Attachment</a>")
nicht.
Ich habe schon mit "Content-Disposition" und "Content-Type" rumexperimentiert, egal was ich da angebe, Notes verwendet den Filename nicht für den Link

Momentan versuche ich den Zugriff über http://server/.../.../.../$FILE/myAttachment.zip?OpenElement
Hier habe ich aber ggf. das Problem, dass der ContentType ignoriert wird, oder es schlichtweg kein $FILE-Item gibt für das Attachment (weil es z.B. im Mime inline ist)

Hat vielleicht wer einen Tipp wie ich entweder Notes dazu bringe, den Content-Disposition-Header an den Browser zu senden, laut Firebug macht der Server (7.02FP2) das nicht, oder hinter "<a href=cid:....." den Dateinamen hängen kann?

Gruß
Roland
Titel: Re: Mime-Entity und Attachment
Beitrag von: WernerMo am 19.10.10 - 22:56:40
Hallo Roland,

ist es nu Domino V8.x.x oder ist es:

... macht der Server (7.02FP2) ...

wenn V7, dann sollte es auch dorthin verschoben werden.

Gruß Werner
Titel: Re: Mime-Entity und Attachment
Beitrag von: koehlerbv am 19.10.10 - 23:11:50
Werner, der entscheidende Teil ist hier der Client. Was der nicht erzeugt, kann der Server nicht wie gewünscht interpretieren - ob das nun R7 oder R8 ist. Und ich denke, hier verhalten sich R7 und R8-Clients gleich. Vermutlich sogar die 6er.

Zum eigentlichen Thema kann ich derzeit leider nichts vernünftiges beitragen.

Bernhard
Titel: Re: Mime-Entity und Attachment
Beitrag von: pram am 19.10.10 - 23:42:06
Sorry, der Server auf dem der HTTP-Dienst läuft ist 7.0.2 der Client ist 8.5.1.
Werd mal probieren ob sich in der Beziehung ein 8er Server anders verhält. Mit 8.5 wurde ja viel im Bereich HTTP getan.


/EDIT:

Also ein 8.5.1er Server hängt an den Link die Content-ID an:
http://server/.../.../.../Body/M3?OpenElement&cid=myAttachment.zip

Bei 7 und 8.0 endet der Link nach "M3?OpenElement"

Wenn ich jetzt als Content-ID "att/myAttachment.zip" nehme dann wird (unter 8.5) folgender Link
http://server/.../.../.../Body/M3!OpenElement&cid=att/myAttachment.zip
und der Browser erkennt den Dateinamen richtig (allerdings nur, wenn der Server ! anstatt ? als URL-separator verwendet)

... alles irgendwie keine saubere Lösung  >:(

Gruß
Roland