Freigeben über


Speichern der Eigenschaften des automatischen Archivs eines Ordners im Lösungsspeicher

Dieses Thema zeigt eine Lösung, die die privaten Daten in einigen eigenschaften der automatischen MAPI-Archivierung speichert. Die Lösung speichert diese Eigenschaften in einem StorageItem-Objekt des Ordners, auf den die Eigenschaften für die automatische Archivierung angewendet werden. StorageItem-Objekte werden als ausgeblendete Daten im zugeordneten Teil eines Ordners gespeichert, und da Lösungen ihre Daten optional verschlüsseln können, bieten sie den von Lösungsdaten erforderlichen Datenschutz. Da die Eigenschaften der automatischen MAPI-Archivierung nicht als explizite integrierte Eigenschaften im Outlook-Objektmodell verfügbar gemacht werden, verwendet die Lösung propertyAccessor für das StorageItem-Objekt , um diese Eigenschaften festzulegen.

Im Folgenden wird das Verfahren veranschaulicht:

  1. Die ChangeAgingProperties Funktion akzeptiert Folgendes als Eingabeparameter:
  • oFolder ist das Folder -Objekt, auf das die Alterungseigenschaften angewendet werden und in dem ihre Werte gespeichert sind.

  • AgeFolder gibt an, ob Elemente im Ordner wie angegeben archiviert oder gelöscht werden sollen.

  • DeleteItems gibt an, ob Elemente, die den Alterungszeitraum überschritten haben, gelöscht und nicht archiviert werden sollen.

  • FileName' gibt eine bestimmte Datei zum Archivieren veralteter Elemente an. If this is an empty string, the default archive file, archive.pst, will be used.

  • Granularity gibt die für die Alterung verwendete Zeiteinheit an, also ob die Archivierung in Monaten, Wochen oder Tagen berechnet werden soll.

  • Period indicates the amount of time in the given granularity. Together, the Granularity and Period values indicate an aging period. Items in the given folder older than this aging period are to be archived or deleted as specified. For example, a Granularity of 2 and Period of 14 specifies an aging period of 14 days, when items in the given folder older than 14 days should be either archived or deleted as specified.

  • Default indicates which settings should be set to the default. The possible values are 0, 1, and 3:

    • 0 indicates nothing assumes a default value.

    • 1 indicates that only the file location assumes a default value. This is the same as checking Archive this folder using these settings and Move old items to default archive folder in the AutoArchive tab of the Properties dialog box for the folder.

    • 3 indicates all settings assume a default value. This is the same as checking Archive items in this folder using default settings in the AutoArchive tab of the Properties dialog box for the folder.

  1. Die Gültigkeit der Parameter wird überprüft.

  2. Wenn die Parameter gültig sind, wird Folder.GetStorage verwendet, um ein vorhandenes StorageItem -Objekt mit der Nachrichtenklasse IPC.MS.Outlook.AgingProperties zu erstellen oder abzurufen.

  3. Anschließend wird PropertyAccessor verwendet, um die AutoArchivierungseigenschaften für StorageItem festzulegen, während mithilfe von StorageItem.Save Änderungen an StorageItem gespeichert werden.

  4. Die TestAgingProps Prozedur legt die Einstellungen für die automatische Archivierung für die Alterungseigenschaften des aktuellen Ordners fest, sodass Elemente, die älter als sechs Monate sind, in die Standardarchivdatei verschoben werden.

Hinweise

  1. Platzieren Sie den Code im integrierten Modul ThisOutlookSession.

  2. Führen Sie die TestAgingProps Prozedur aus, um alternde Eigenschaften für den aktuellen Ordner im aktiven Explorer festzulegen.

Anmerkung Unabhängig davon, ob sie als VBA-Makro oder COM-Add-In implementiert ist, ist die Lösung ein vertrauenswürdiger Aufrufer und kann daher auf propertyAccessor zugreifen. Um dieses Beispiel zu verbessern, umschließen Sie den folgenden VBA-Code in einer .NET-Klasse, um eine bessere Fehlerauffangung und -enumeration für granularität zu erstellen.

Function ChangeAgingProperties(oFolder As Outlook.Folder, _ 
 AgeFolder As Boolean, DeleteItems As Boolean, _ 
 FileName As String, Granularity As Integer, _ 
 Period As Integer, Default As Integer) As Boolean 
 
 '6 MAPI properties for aging items in a folder 
 Const PR_AGING_AGE_FOLDER = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x6857000B" 
 Const PR_AGING_DELETE_ITEMS = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x6855000B" 
 Const PR_AGING_FILE_NAME_AFTER9 = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x6859001E" 
 Const PR_AGING_GRANULARITY = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x36EE0003" 
 Const PR_AGING_PERIOD = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x36EC0003" 
 Const PR_AGING_DEFAULT = _ 
 "https://schemas.microsoft.com/mapi/proptag/0x685E0003" 
 
 Dim oStorage As StorageItem 
 Dim oPA As PropertyAccessor 
 
 ' Valid Period: 
 ' 1-999 
 ' 
 ' Valid Granularity: 
 ' 0=Months, 1=Weeks, 2=Days 
 ' 
 ' Valid Default: 
 ' 0=All settings don't use a default setting 
 ' 1=Only the file location is defaulted 
 ' "Archive this folder using these settings" and 
 ' "Move old items to default archive folder" are checked 
 ' 3=All settings are defaulted 
 ' "Archive items in this folder using default settings" is checked 
 
 If (oFolder Is Nothing) Or _ 
 (Granularity < 0 Or Granularity > 2) Or _ 
 (Period < 1 Or Period > 999) Or _ 
 (Default < 0 Or Default = 2 Or Default > 3) _ 
 Then 
 ChangeAgingProperties = False 
 End If 
 
 On Error GoTo Aging_ErrTrap 
 
 'Create or get solution storage in given folder by message class 
 Set oStorage = oFolder.GetStorage( _ 
 "IPC.MS.Outlook.AgingProperties", olIdentifyByMessageClass) 
 Set oPA = oStorage.PropertyAccessor 
 
 If Not (AgeFolder) Then 
 oPA.SetProperty PR_AGING_AGE_FOLDER, False 
 Else 
 'Set the 6 aging properties in the solution storage 
 oPA.SetProperty PR_AGING_AGE_FOLDER, True 
 oPA.SetProperty PR_AGING_GRANULARITY, Granularity 
 oPA.SetProperty PR_AGING_DELETE_ITEMS, DeleteItems 
 oPA.SetProperty PR_AGING_PERIOD, Period 
 If FileName <> "" Then 
 oPA.SetProperty PR_AGING_FILE_NAME_AFTER9, FileName 
 End If 
 oPA.SetProperty (PR_AGING_DEFAULT), Default 
 End If 
 'Save changes as hidden messages to the associated portion of the folder 
 oStorage.Save 
 ChangeAgingProperties = True 
 Exit Function 
 
Aging_ErrTrap: 
 Debug.Print Err.Number, Err.Description 
 ChangeAgingProperties = False 
End Function 
 
Sub TestAgingProps() 
 Dim oFolder As Outlook.Folder 
 Set oFolder = Application.ActiveExplorer.CurrentFolder 
 If ChangeAgingProperties(oFolder, True, False, "", 0, 6, 1) Then 
 Debug.Print "ChangeAgingProperties OK" 
 Else 
 Debug.Print "ChangeAgingProperties Failed" 
 End If 
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.