Imap-Ordner nach Exchange Import 5


Fehlerbeschreibung:

Wenn ein IMAP-Postfach exportiert und in ein Exchange-Postfach importiert wurde, kann es vorkommen, dass die Ordner vom Typ „IMAP“ sind. E-Mails werden dann als ungelesen angezeigt aber Sie sind nicht sichtbar.

Folgendes Makro kann man erstellen, damit alle Ordner vom Typ „IMAP“ in IPM.Post geändert werden und alles wieder normal ist.


1. Setzt die Sicherheit für die Ausführung von Makros auf „gering“

Um das zu Überprüfen / Ändern öffnet Outlook. Danach oben links auf „Datei“ -> „Optionen“ -> „Trust Center“ -> „Makroeinstellungen“.

In älteren Versionen ab Outlook 2007 findet Ihr die Einstellungen unter „Tools“ -> „Makro Sicherheit“

2. Makro erstellen und ausführen

  • Öffnet Outlook
  • Öffnet den VBA Editor über die Tastenkombi „Alt+F11“
  • Rechtsklickt im VBA Editor links auf Projekt1 -> Einfügen -> Modul
  • Fügt den folgenden Makro-Inhalt ein
  • Danach klickt Ihr oben in der Menüleiste des Editors auf „Makro ausführen“
  • Anschließend wählt Ihr den obersten Postfachpunkt aus, damit alle Unterordner angepasst werden
  • Danach sind eure Ordner vom richtigen Ordner-Typ und alle Elemente werden wieder angezeigt

=> Bilderserie finde Ihr am Ende des Beitrages


Makro:

Option Explicit
Dim SubFolder As MAPIFolder

Sub ChangeFolderClassAllSubFolders()
    Dim i               As Long
    Dim iNameSpace      As NameSpace
    Dim myOlApp         As Outlook.Application
    Dim ChosenFolder    As Object
    Dim Folders         As New Collection
    Dim EntryID         As New Collection
    Dim StoreID         As New Collection
       
    Set myOlApp = Outlook.Application
    Set iNameSpace = myOlApp.GetNamespace("MAPI")
    Set ChosenFolder = iNameSpace.PickFolder
    If ChosenFolder Is Nothing Then
GoTo ExitSub:
    End If

    Call GetFolder(Folders, EntryID, StoreID, ChosenFolder)
        ChangeFolderContainer
        
    For i = 1 To Folders.Count
        Set SubFolder = myOlApp.Session.GetFolderFromID(EntryID(i), StoreID(i))
        On Error Resume Next
        ChangeFolderContainer
    
        On Error GoTo 0
    Next i     
ExitSub:      
End Sub
    
  
Private Sub ChangeFolderContainer()
Dim oFolder As Outlook.folder
Dim oPA As Outlook.PropertyAccessor
Dim PropName, Value, folderType As String

PropName = "http://schemas.microsoft.com/mapi/proptag/0x3613001E"
Value = "IPF.Note"

On Error Resume Next
Set oFolder = SubFolder 'Application.ActiveExplorer.CurrentFolder
Set oPA = oFolder.PropertyAccessor

folderType = oPA.GetProperty(PropName)
Debug.Print SubFolder.Name & " " & (folderType)

If folderType = "IPF.Imap" Then

oPA.SetProperty PropName, Value
Debug.Print "     Changed: " & SubFolder.Name & " " & Value

End If

Set oFolder = Nothing
Set oPA = Nothing
End Sub
     
    
Sub GetFolder(Folders As Collection, EntryID As Collection, StoreID As Collection, Fld As MAPIFolder)
    Dim SubFolder       As MAPIFolder
       
    Folders.Add Fld.FolderPath
    EntryID.Add Fld.EntryID
    StoreID.Add Fld.StoreID
    For Each SubFolder In Fld.Folders
        GetFolder Folders, EntryID, StoreID, SubFolder
    Next SubFolder
       
ExitSub:
    Set SubFolder = Nothing
       
End Sub

Bilderserie


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

5 Gedanken zu “Imap-Ordner nach Exchange Import

  • Avatar
    Martin Münzer

    Leider sind im Makro ein paar Syntaxfehler, u.a. Dim SubFolder As MAPIFolderSub ChangeFolderClassAllSubFolders() sind zwei Zeilen zusammen geklebt.
    ‚Application.ActiveExplorer.CurrentFolder muss heißen ‚Application.ActiveExplorer.CurrentFolder
    Weitere habe ich dann nicht gesucht sondern das Skript noch an anderer Stelle richtiger gefunden 😉
    Trotzdem aber danke fürs teilen! Hat mich auf den richtigen Weg gebracht.

    • Karsten
      Karsten Autor des Beitrags

      Hallo Herr Münzer,
      vielen Dank für den Hinweis. Ich werde das direkt auf der Webseite anpassen. Leider sind da bei Kopieren die Formate geändert worden.

      Viele Grüße,
      Karsten Tetzlaff

  • Avatar
    Pascal

    Besten Dank für Deinen Beitrag!!!!!

    Danach hab ich jetzt etwa 2 Stunden gesucht. Es Synchronisiert auch sofort mit dem Exchange O365, somit trifft das Filter Chaos bei allen Clients mit dem Benutzer nicht mehr auf.

    Nochmals besten DANK!!!

  • Avatar
    Werner Walti

    Oh Mann, danach habe ich wie verzweifelt x-Stunden gesucht!! Danke für den tollen Hinweis bzw. Anleitung! Jetzt funktioniert alles 🙂
    Nochmals besten Dank!