dehein2
Goto Top

Ordner in Outlook synchronisieren (nicht zwischen mehreren Benutzern)

Hallo zusammen,

ich habe eine Frage. In unserer Firma werden Emails aus allen Ordnern nach einer Zeit (3-4 Monate) nicht mehr in Outlook angezeigt sondern in ein Archiv verschoben. Ich würde nun gerne in eine lokale pst Datei alle meine Ordner synchroniseren (in eine Richtung), so dass ich dort alle Mails behalte. Dabei sollen natürich die Mails die im Hauptordner verschwinden in der lokalen .pst erhalten bleiben.


Also quasi: Sychrnosieren von online-pst in archiv.pst aller Ordner
In online.pst gelöschte Daten bleiben in archiv.pst erhalten

Gibt es hierzu eine Lösung.

Vielen Dank
Dennis

Content-Key: 273697

Url: https://administrator.de/contentid/273697

Printed on: April 26, 2024 at 09:04 o'clock

Mitglied: 114757
114757 Jun 05, 2015 updated at 10:54:56 (UTC)
Goto Top
Moin Dennis,
z.B. vollkommen kostenlos mit einem Outlook Makro:
Das Makro durchläuft einen Quellordner rekursiv und überträgt noch nicht gesicherte Mails in den Zielordner unter Beibehaltung der Ordnerstruktur. Die gesicherten Mails werden dabei in der Quelle unsichtbar mit einem TAG versehen welche sie als "gesichert" kennzeichnet. So werden bei einem erneuten Durchlauf nur noch neue Mails aus der Quelle gesichert.
Sub BackupFolderStructure()
    Dim colNewMails As New Collection, folderSource As folder, folderTarget As folder, itm As Object, userprop As Property
    'Quellordner  
    Set folderSource = Application.Session.Stores.Item("Persönlicher Ordner").GetRootFolder.Folders("Posteingang").Folders("Quelle")  
    'Zielordner  
    Set folderTarget = Application.Session.Stores.Item("Persönlicher Ordner").GetRootFolder.Folders("Posteingang").Folders("Ziel")  
    
    parseFolder folderSource, colNewMails, folderTarget
    
    'Archivierte Mails mit Archiv-TAG versehen  
    For Each itm In colNewMails
        If itm.UserProperties.Find("isArchived", True) Is Nothing Then  
            Set userprop = itm.UserProperties.add("isArchived", olYesNo)  
            userprop.Value = True
        Else
            itm.UserProperties.Item("isArchived").Value = True  
        End If
        itm.Save
    Next
End Sub

'Rekursive Prozedur zum Suchen in einer Ordnerstruktur  
Sub parseFolder(ByVal fldr As folder, ByRef colMails As Collection, ByVal fldrTarget As folder)
    'Wenn der Ordner Mailitems enthält  
    If fldr.DefaultItemType = olMailItem Then
        For Each itm In fldr.items
            If itm.UserProperties.Find("isArchived", True) Is Nothing Then  
                'Duplikat der Mail erzeugen und in Zielordner kopieren  
                Set newItem = itm.Copy
                newItem.Move fldrTarget
                'Mail zur Collection hinzufügen  
                colMails.add itm
            End If
        Next
    End If
    'Prozedur ruft sich eslbst für alle Unterordner erneut auf  
    For Each subfolder In fldr.Folders
        On Error Resume Next
        Set newTargetSubFolder = fldrTarget.Folders.add(subfolder.Name)
        If newTargetSubFolder Is Nothing Then
            Set newTargetSubFolder = fldrTarget.Folders(subfolder.Name)
        End If
        parseFolder subfolder, colMails, newTargetSubFolder
    Next
End Sub
Gruß jodel32
Member: dehein2
dehein2 Jun 08, 2015 at 09:26:24 (UTC)
Goto Top
Danke,

wenn ich das Makro so kopiere erhalte ich aber direkt folgende Meldung:

Compile error: User defined type not defined
Hervorgehoben ist: ", userprop As Property"

VG
Mitglied: 114757
114757 Jun 08, 2015 updated at 09:29:37 (UTC)
Goto Top
Zitat von @dehein2:
wenn ich das Makro so kopiere erhalte ich aber direkt folgende Meldung:

Compile error: User defined type not defined
Hervorgehoben ist: ", userprop As Property"
Erstens ist das ein Outlook-Makro, muss also ins Outlook-VBA Projekt kopiert werden, und zweitens musst du natürlich den Quell- und Zielordner anpassen(referenzieren)
Member: dehein2
dehein2 Jun 18, 2015 at 06:27:41 (UTC)
Goto Top
Danke,

ich bekomme es leider noch nicht so ganz hin. Ich habe in Outlook die Developer Toolbar aktiviert und dann auf VB geklickt und deinen Cide eingefügt. Ganz sicher bin ich mir nicht bei der Ordnerstruktur und den Variablen:

Bei sieht es wie folgt aus:

Hauptdatendatei:
name@domain.com

darunter dann alle Ordner wie Inbox, Sent, Projects.

Sichern würde ich z.B. gerne "Projects" inkl. aller unterordner.

Archiv:
Datendatei heißt Archiv.pst
Darin hätte ich gerne einfach die gleiche Ordnerstruktur wie im Hauptorder.

Kannst du mir da nochmal helfen?

Vielen Dank
Dennis
Mitglied: 114757
114757 Jun 18, 2015 updated at 07:22:48 (UTC)
Goto Top
Wichtig ist das du den "tatsächlichen Namen" des jeweiligen Stores angibst so wie er in der Baumansicht auf der linken Seite erscheint.
Den Ordner "Projects" musst du noch manuell im Archiv anlegen...alle anderen Ordner unterhalb werden wie in der Quelle angelegt.
'Quellordner  
    Set folderSource = Application.Session.Stores.Item("name@domain.com").GetRootFolder.Folders("Projects")  
    'Zielordner  
    Set folderTarget = Application.Session.Stores.Item("Archiv").GetRootFolder.Folders("Projects")  
Member: dehein2
dehein2 Jun 18, 2015 at 07:43:48 (UTC)
Goto Top
Danke, aber ich bekomme leider immernoch dieselbe Fehlermeldung


Compile error: User defined type not defined
Hervorgehoben ist: ", userprop As Property"
Mitglied: 114757
114757 Jun 18, 2015 updated at 07:47:39 (UTC)
Goto Top
Outlook Version ?

Geht hier einwandfrei mit OL2010.

Ansonsten schreib es um in
userprop as object