Domino 9 und frühere Versionen > ND6: Entwicklung
Mime Type eines Attachments erkennen
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