Hallo,
ich will mir ein Tool bauen das alle Emails eines Archives als EML Datei in einen Ordner ablegt.
Dafür habe ich als grundlage das Beispiel aus der API hilfe genommen.
Diese Funktion läuft auch bei mir, nun wollte ich das Programm als Windows Dienst laufen lassen und da bekomme ich immer die Fehlermeldung ganz unten in meinem Beitrag in der geht es um die Funktion DVEmlFromMailItem.
Hat jemand eine Idee warum die Funktion in meinem Programm super läuft aber in meinem Dienst nicht?
ZitatAlles anzeigenPublic Declare Function DVEmlFromMailItem Lib "DvApi32" (ByVal oMailItem As Object, ByVal strFileName As String) As Long
Public Sub MailArchivierung()Dim oApp As Object
Dim oAccount As Object
Dim oArchive As Object
Dim oMailItem As Object
Dim oMessageItems As Object
Dim Filename, Zielpfad As String
Dim i As IntegeroApp = CreateObject("DVOBJAPILib.DvISEAPI")
oAccount = oApp.Logon("####", "####", "####", "", "", "AUTH")oArchive = oAccount.GetArchive("System/Archivieren/in")
oMessageItems = oArchive.AllItems
For i = 0 To oMessageItems.Count - 1
If oMessageItems.Item(i).Type = 2 Then
oMailItem = oMessageItems.Item(i)
Filename = Space(255)
If DVEmlFromMailItem(oMailItem, Filename) <> 0 Then
Filename = Filename.Remove(Filename.IndexOf(".tmp") + 4, 1).Trim.ToCharArray
Zielpfad = "C:\Test\" & CreateFileName() & ".eml"
If System.IO.File.Exists(Filename.Trim) Then
My.Computer.FileSystem.CopyFile(Filename.Trim, Zielpfad.Trim, True)
End If
End If
End If
Next
oArchive = Nothing
oMailItem = Nothing
oMessageItems = Nothing
Filename = Nothing
Zielpfad = Nothing
End Sub
Der Dienst kann nicht gestartet werden. System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei TobitArchiving.TobitEmailArchivierung.DVEmlFromMailItem(Object oMailItem, String& strFileName)
bei TobitArchiving.TobitEmailArchivierung.MailArchivierung() in O:\VisualStudio\Projekte\TobitArchiving\TobitArchiving\TobitEmailArchivierung.vb:Zeile 78.
bei TobitArchiving.TobitEmailArchivierung.OnStart(String[] args) in O:\VisualStudio\Projekte\TobitArchiving\TobitArchiving\TobitEmailArchivierung.vb:Zeile 35.
bei System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)