Hallo allerseits
Ich plage mich seit Stunden mit einem scheinbar banalen Problem herum und stehe regelrecht auf dem Schlauch. Also bitte nicht böse sein, wenn die Lösung scheinbar so einfach ist, daß ich den Wald vor lauter Bäumen nicht sehe. Im Forum konnte ich hierzu allerdings nichts konkretes finden.
Das Problem: Ich möchte die aktuell selektierte Email als EML im Filesystem abspeichern. Das Skriptbeispiel ("Save MailItem as *.eml file", in VBA) habe ich bereits erfolgreich umgesetzt, allerdings möchte ich gezielt nur EINE Email abspeichern. Mein Vorgänger hat dieses in Visual FoxPro programmiert und es so gelöst: Nachdem das Messageitem über GetArchiveEntryByID ermittelt wurde, werden alle Mailitems durchlaufen, bis das korrekte Item per ID-Vergleich gefunden wurde. Dieses Mailitem wird dann per DVEmlFromMailItem im EML-Formart abgespeichert.
In meinem Skript habe ich keine Möglichkeit, die Message-ID mit der Mail-ID zu vergleichen, denn die Property "._id" (get__ID) wird schlichtweg nicht unterstützt (Zeile 29). Was habe ich vergessen/übersehen oder welche andere Möglichkeit gibt es, zu einem MessageItem das MailItem zu ermitteln ?
Vielen Dank im voraus für Eure Hilfe
Matze
Private Sub () par = Trim(Command$) ' Parametersatz bestehend aus MailItem-Pfad und einstelliger Ziffer (intern) Dim cItem, cFunktion As String If par <> "" Then cFunktion = Right(par, 1) cItem = Left(par, Len(par) - 2) Dim oApp As DvApi32.DavidAPI Dim oAccount As DvApi32.Account Dim oArchive As DvApi32.Archive Dim oMessageItems As DvApi32.MessageItems Dim oMsgItem As DvApi32.MessageItem Dim oMailItem As DvApi32.MailItem Dim oFaxItem As DvApi32.FaxItem Dim FileName As String Dim i As Integer Set oApp = CreateObject("DVOBJAPILib.DvISEAPI") Set oAccount = oApp.Logon("", "", "", "", "", "NOAUTH") Set oArchive = oAccount.GetArchive(Mid(cPfad, 1, InStrRev(cPfad, "\") - 1)) Set oMsgItem = oArchive.GetArchiveEntryByID(cPfad) If oMsgItem.Type = 2 Then Set oMessageItems = oArchive.MailItems For i = 0 To oMessageItems.Count - 1 If oMessageItems.Item(i).Type = 2 Then set oMailItem = oMessageItems.Item(i) If oMailItem._id = oMsgItem._id Then ' WIRD NICHT UNTERSTÜTZT FileName = Space(260) If DVEmlFromMailItem(oMailItem, FileName) <> 0 Then FileCopy FileName, "c:\" & oMailItem.Subject & ".eml" End If End If end if Next End If Set oMailItem = Nothing Set oMessageItems = Nothing Set oArchive = Nothing Set oApp = Nothing Else MsgBox ("FEHLER: Keine Parameter übergeben !") End If End Sub