Inhalt
Category-Manager | |
Mit dem Category-Manager können Sie Outlook Kategorien gruppieren, synchronisieren und filtern, neuen Emails automatisch die Kategorie des Absenders zuweisen und vieles mehr. Das Addin ist auch für IMAP geeignet. |
Mit einer rekursiven Schleife durch alle Ordner können Sie die Inhalte sämtlicher Ordner lesen, ohne jeden Ordner gezielt über den Namen ansprechen zu müssen. Das ist z.B. dann nützlich, wenn Sie zur Programmierzeit gar nicht wissen, welche Ordner oder Ordnerstruktur es geben wird. Die folgenden Beispiele zeigen den grundlegenden Aufbau anhand von Emails. Was dann mit dem Ordnerinhalt angestellt wird, ist ausgelagert, so dass das Gerüst leicht wiederverwendet werden.
Public Sub LoopFolders(Folders As Outlook.Folders, _ ByVal Recursive As Boolean _ ) Dim Folder As Outlook.MAPIFolder For Each Folder In Folders DoAnything Folder If Recursive Then LoopFolders Folder.Folders, Recursive End If Next End Sub Private Sub DoAnything(Folder As Outlook.MAPIFolder) Debug.Print Folder.Name End Sub
SAM | |
Legen Sie fest, mit welcher "Identität" Ihre Emails beim Empfänger erscheinen sollen. Mit SAM bestimmen Sie den Absender und Speicherort für Emails anhand von Regeln. |
Hier kommt eine praktische Anwendung für eine rekursive Schleife durch alle Ordner: Wir legen für einen auszuwählenden Ordner und seine Unterordner fest, dass nicht die Anzahl aller ungelesenen Elemente angezeigt werden soll, sondern die Anzahl aller Elemente.
Fügen Sie die Funktion 'ChangeFolderSettings' zu den obigen beiden hinzu. Beachten Sie die Variable 'EditSubfoldersOnly': Hierüber wird gesteuert, ob die Ãnderungen nur auf die gewählten Unterordner oder auch auf den Startordner selbst angewendet werden sollen.
Public Sub ChangeFolderSettings() Dim Folder As Outlook.MapiFolder Dim EditSubfoldersOnly As Boolean 'Startordner auswählen Set Folder = Application.Session.PickFolder 'True ändert nur die Unterordner, False ändert auch den Startordner EditSubfoldersOnly = False If Not Folder Is Nothing Then If EditSubfoldersOnly = False Then DoAnything Folder LoopFolders Folder.Folders, True End If End Sub
In der Funktion 'DoAnything' ändert sich nur eine einzige Zeile:
Private Sub DoAnything(Folder As Outlook.MAPIFolder) 'Eigenschaft auf True setzen zeigt die Anzahl aller Elemente, 'False würde nur die Anzahl der ungelesenen Elemente anzeigen Folder.ShowItemCount = True End Sub
Dieses Beispiel erweitert die Schleife durch alle Ordner um eine Schleife durch alle Elemente jedes Ordners.
Public Sub LoopFolders(Folders As Outlook.Folders, _ ByVal Recursive As Boolean _ ) Dim Folder As Outlook.MAPIFolder For Each Folder In Folders LoopItems Folder.Items If Recursive Then LoopFolders Folder.Folders, Recursive End If Next End Sub Private Sub LoopItems(Items As Outlook.Items) Dim obj As Object For Each obj In Items If TypeOf obj Is Outlook.MailItem DoAnything obj End If Next End Sub Private Sub DoAnything(Item As Outlook.MailItem) Debug.Print Item.Subject End Sub
OLKeeper | |
Der OLKeeper verhindert zuverlässig, dass Sie Microsoft Outlook unbeabsichtigt schlieÃen und so etwa wichtige Emails verpassen würden. |
Die obigen Beispiele mit dem OOM funktionieren mit allen Outlook-Versionen, sind aber bis einschlieÃlich Outlook 2003 relativ langsam. Viel schneller geht es da mit der CDO 1.21 Bibliothek.
Public Sub LoopFolders(Folders As MAPI.Folders, _ ByVal Recursive As Boolean _ ) Dim Folder As MAPI.Folder For Each Folder In Folders DoAnything Folder If Recursive Then LoopFolders Folder.Folders, Recursive End If Next End Sub Private Sub DoAnything(Folder As MAPI.Folder) Debug.Print Folder.Name End Sub
Hier die CDO-Variante zum Auflisten aller Ordnerinhalte.
Public Sub LoopFolders(Folders As MAPI.Folders, _ ByVal Recursive As Boolean _ ) Dim Folder As MAPI.Folder For Each Folder In Folders LoopItems Folder.Messages If Recursive Then LoopFolders Folder.Folders, Recursive End If Next End Sub Private Sub LoopItems(Items As MAPI.Messages) Dim obj As Object For Each obj In Items If TypeOf obj Is MAPI.Message DoAnything obj End If Next End Sub Private Sub DoAnything(Item As MAPI.Message) Debug.Print Item.Subject End Sub
Category-Manager | |
Mit dem Category-Manager können Sie Outlook Kategorien gruppieren, synchronisieren und filtern, neuen Emails automatisch die Kategorie des Absenders zuweisen und vieles mehr. Das Addin ist auch für IMAP geeignet. |