Hi.
Ich versuche seit Stunden vergeblich dieses Programm aus der DvAPI-Hilfe zum laufen zu bringen:
Code
Private Declare Function DVEmlFromMailItem Lib "DvApi32" (ByVal oMailItem As DvApi32.MailItem, ByVal strFileName As String) As Long
Private Sub eMail2eml_Click()
'Save all MailItems entries as .eml
Dim oApp As DvApi32.IApplication
Dim oAccount As DvApi32.Account
Dim oArchive As DvApi32.Archive
Dim oMailItem As DvApi32.MailItem
Dim oMessageItems As DvApi32.MessageItems
Dim Filename As String
Dim i As Integer
Set oApp = CreateObject("DVOBJAPILib.DvISEAPI")
Set oAccount = oApp.Logon("", "", "", "", "", "AUTH")
Set oArchive = oAccount.GetSpecialArchive(DvApi32.DvArchiveTypes.DvArchivePersonalIn)
Set oMessageItems = oArchive.AllItems
For i = 0 To oMessageItems.Count - 1
If oMessageItems.Item(i).Type = DvApi32.DvItemTypes.DvEMailItem Then
oMailItem = oMessageItems.Item(i)
Filename = Space(260)
If DVEmlFromMailItem(oMailItem, Filename) <> 0 Then
' In FileName are the saved EML file
FileCopy FileName, "c:\" & oMailItem.Subject & ".eml"
End If
End If
Next
End Sub
Alles anzeigen
Die Funktion FileCopy wirft die Ausnahme ArgumentException mit der Message "Illegales Zeichen im Pfad". Ich kann aber kein illegales Zeichen finden. Der Input-Filename, der aus DVEmlFromMailItem herauskommt lautet "C:\DOKUME~1\%username%\LOKALE~1\Temp\$$dv$$\API2B.tmp" und das Ziel, das ich gerne hätte ist Testweise "C:\".
Ich habe schon alle mögliche versucht. Z.B. vor dem FileCopy mittels ChDir in das $$dv$$-Verzeichnis zu wechseln oder auch andere Copy-Methoden wie File.Copy oder CopyFile. Es war alles für die Katz.
Nun seid ihr meine letzte Hoffnung
LG
Benni