Domino 9 und frühere Versionen > ND6: Entwicklung

Mime Type eines Attachments erkennen

<< < (2/2)

y20frank:
+++ Update 08.04.2006 +++
HMPF, hat leider auch nicht funktioniert. Das NotesDoc hat einen Anhang, aber der MimeType wird noch immer nicht zurückgegeben...
+++ Update 08.04.2006 +++

Danke Axel, das werde ich gleich morgen ausprobieren!  :D

Besten Gruß
Frank

magic_halli:
Hi,

aus aktuellem Anlass greife ich dieses Thema nochmal auf.
Ich habe den Code von Pitiyankee mal implementiert, um an Attachments zu gelangen, die im MIME-Type im Body enthalten sind... funzt erstmal, d.h. ich kann die entsprechenden Infos auslesen!

Mich würde aber interessieren, ob ich solch ein Attachment auch auf Platte speichern kann!?!
"Normale" Attachments speichere ich bspw. so weg:

--- Zitat ---   Set attachment = docMail.GetFirstItem("Body")
   ' TempDir des Win-Benutzers
   tempdir = Environ("temp")
   Dim fileArrayString As String
   
   If ( docMail.HasEmbedded ) Then
      If ( attachment.Type = RICHTEXT ) Then
         Forall o In attachment.EmbeddedObjects
            If ( o.Type = EMBED_ATTACHMENT ) Then
               ' Attachment in TempVerzeichnis des Nutzers speichern
               filepath = tempdir & "\" & o.Source
               Call o.ExtractFile( filepath )
               ' String zusammensetzen (in Java splitten)
               fileArrayString = fileArrayString + filepath + ";"
            End If
         End Forall
      End If
      ' Rückgabewert
      getAttachments = fileArrayString
   End If

--- Ende Zitat ---
Mittels der Zeile 'Call o.ExtractFile( filepath )' wird das Attachment unter einen Pfad auf HDD gespeichert.

Kann ich auch irgendwie das File aus dem MIME-Type auf Platte speichern? (siehe Code von Pitiyankee)

Danke und Gruß

Rico.

magic_halli:
Hi,

ich habe eine Möglichkeit gefunden, um die "MIME-Files" auf Platte zu speichern:

--- Code: --- Dim session As New NotesSession
Dim mime As NotesMIMEEntity
Dim child As NotesMIMEEntity
Dim stream As NotesStream
Dim pathname As String
Dim countChild As Integer

session.ConvertMIME = False
Msgbox "startMail mail->" & docMail.subject(0)
Set mime = docMail.GetMIMEEntity
If Not(mime Is Nothing) Then
Set child = mime.GetFirstChildEntity
countChild = 0
While Not(child Is Nothing)
countChild = countChild + 1

'GIF speichern
If child.ContentType = "image" And child.ContentSubtype = "gif" Then
Set stream = session.CreateStream
pathname = "D:\temp\mime\mimeimage" & countChild &".gif"
If Not stream.Open(pathname, "binary") Then
Messagebox pathname,, "Open failed"
'Goto ExitSub
End If
Call child.GetContentAsBytes(stream)
Call stream.Close()
Else
Messagebox "Not GIF",, docMail.GetItemValue("Subject")(0)
End If

' JPEG speichern
If child.ContentType = "image" And child.ContentSubtype = "jpeg" Then
Set stream = session.CreateStream
pathname = "D:\temp\mime\mimeimage" & countChild &".jpeg"
If Not stream.Open(pathname, "binary") Then
Messagebox pathname,, "Open failed"
'Goto ExitSub
End If
Call child.GetContentAsBytes(stream)
Call stream.Close()
Else
Messagebox "Not JPEG",, docMail.GetItemValue("Subject")(0)
End If
Set child = child.GetNextSibling
Wend
Else ' if not MIME
Messagebox "Not MIME",, _
docMail.GetItemValue("Subject")(0)
End If
Msgbox "END mail->" & docMail.subject(0)
session.ConvertMIME = True ' Restore conversion

--- Ende Code ---
So klappt das schonmal mit gif´s und jpeg´s bei mir... werde diesen Code noch etwas ausbauen und dann so nutzen.
Wenn jemand zufällig ein grober Schnitzer/Anregungen o.ä. hierzu auffallen sollten, dann immer raus damit.

Gruß

Rico.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln