Announcement

Collapse
No announcement yet.

Zugriff auf Mapi verändert nicht gewollt Mails

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf Mapi verändert nicht gewollt Mails

    Hallo,

    in einer Anwendung müssen Postfächer geprüft werden ob dort Mails über eine Zeit X liegen.
    Das bekommt der Code auch raus, allerdings können Mails danach nicht mehr Verschoben oder geändert werden.
    Die Fehlermeldung in Outlook bei dem Versuch eine Mail nach einen Programmdurchlauf zu ändern lautet: Der Vorgang kann nicht ausgeführt werden, da die Nachricht geändert wurde.

    Der Verwendete Verweis ist Microsoft.Office.Interop.Outlook Version 12.0.0.0
    Noch ein Hinweis, die Postfächer und Pfade müssen konfigurierbar bleiben

    Code:
    #Region "Outlook Überwachung"
    
        Public Function OL_Mails_Check() As xOLCheckItem
            Dim oApp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application
            Dim oNS As Microsoft.Office.Interop.Outlook.NameSpace = oApp.GetNamespace("mapi")
            Dim xMapiFolder As Microsoft.Office.Interop.Outlook.MAPIFolder = Get_OL_MapiFolder(oNS)
            Dim xReturn As xOLCheckItem
    
            xReturn.DangeredMails = 0
            xReturn.IsError = False
            xReturn.OL_PathFound = True
    
            Try
                If Not xMapiFolder Is Nothing Then
                    Dim xMailItems As Microsoft.Office.Interop.Outlook.Items = xMapiFolder.Items
    
                    For Each xItem As Microsoft.Office.Interop.Outlook.MailItem In xMailItems
                        If DateDiff(DateInterval.Minute, xItem.ReceivedTime, Now) > _Set.Main("OL_Warning") Then xReturn.DangeredMails += 1
                    Next
    
                Else
                    xReturn.IsError = True
                    xReturn.OL_PathFound = False
                End If
            Catch ex As Exception
                xReturn.IsError = True
            Finally
                oNS.Logoff()
                oNS = Nothing
                oApp = Nothing
    
            End Try
    
            Return xReturn
    
        End Function
    
        Private Function Get_OL_MapiFolder(ByVal oNS As Microsoft.Office.Interop.Outlook.NameSpace, _
                                           Optional ByVal xCurrentFolder As Microsoft.Office.Interop.Outlook.MAPIFolder = Nothing, _
                                           Optional ByVal xI As Integer = 0) As Microsoft.Office.Interop.Outlook.MAPIFolder
    
            Dim xReturn As Microsoft.Office.Interop.Outlook.MAPIFolder = Nothing
    
            Try
                If xCurrentFolder Is Nothing Then
    
                    Dim xFolder As Microsoft.Office.Interop.Outlook.MAPIFolder = oNS.Folders(_Set.Main("OL_Path").ToString.Split("\")(xI))
                    If Not xI = _Set.Main("OL_Path").ToString.Split("\").Count - 1 Then
                        xI += 1
                        xReturn = Get_OL_MapiFolder(oNS, xFolder, xI)
                    Else
                        xReturn = xFolder
    
                    End If
                    xFolder = Nothing
    
                Else
    
                    Dim xFolder = xCurrentFolder.Folders(_Set.Main("OL_Path").ToString.Split("\")(xI))
                    If Not xI = _Set.Main("OL_Path").ToString.Split("\").Count - 1 Then
                        xI += 1
                        xReturn = Get_OL_MapiFolder(oNS, xFolder, xI)
                    Else
                        xReturn = xFolder
                    End If
    
                    xFolder = Nothing
                End If
    
            Catch ex As Exception
                xReturn = Nothing
            End Try
    
    
    
    
            Return xReturn
    
        End Function
    
    
    #End Region

  • #2
    Der Fehler scheint nur bei .pst Dateien für Outlook 2007 und höher aufzutreten.
    Bei PST-Dateien 97-2002 oder Exchange 2003 Postfächern funktioniert alles normal.

    Ich hoffe mal das das auch bei neueren Exchange Servern funktioniert. Leider habe ich hier keinen zum Testen da.
    Wäre super wenn das einer testen könnte der einen neueren Server am laufen hat.
    Man kann die Mail einmal nach lauf verschieben, allerdings dann nicht mehr zurück.

    Comment

    Working...
    X