Outlook 2007 löscht E-Mails in einer bestimmten Kategorie automatisch nach X-Dauer

1

Ich erhalte zwei Arten von E-Mails: Diskussion und Benachrichtigungen. Benachrichtigungen sind automatisch generierte E-Mails für Dinge wie Code-Updates, Issue-Tracking-Updates usw. Ich habe Filter eingerichtet, die ihnen eine Kategorie "Benachrichtigung" geben.

Ich möchte die Diskussionen auf unbestimmte Zeit fortsetzen, da Sie vor einem halben Jahr nie wissen, wann Sie die Informationen einer E-Mail benötigen. Die Benachrichtigungen sind jedoch vergänglich und müssen nicht den Festplattenspeicher verstopfen.

Gibt es eine Möglichkeit, Outlook automatisch archivieren / löschen / löschen / verfallen zu lassen, unabhängig davon, welche dieser E-Mails auf der Kategorie basieren?

Max Cantor
quelle

Antworten:

1

Okay, ich habe gerade mein erstes Outlook-Makro geschrieben - also beschuldigen Sie mich nicht, wenn es alle Ihre Mails löscht. Sichern Sie, bevor Sie es versuchen! :)

Gehen Sie in Outlook zu Extras> Makros> Makro . Geben Sie den Namen ein, den Sie dem Makro geben möchten. Ich habe meine "Delete_Old_Notifications" genannt.

Hier ist der Makro-Code, den ich geschrieben habe:

Sub Delete_Old_Notification()
    Dim ns As Outlook.NameSpace
    Set ns = Application.GetNamespace("MAPI")

    Dim inbox As Outlook.MAPIFolder
    Set inbox = ns.GetDefaultFolder(olFolderInbox)

    Dim item As Object 'Outlook.MailItem
    Dim Action As Integer
    Dim Categories, Category

    Action = 0

    For Each item In inbox.Items
    If Len(item.Categories & "") > 0 Then
        Categories = Split(item.Categories, ";")

        For Each Category In Categories
        Select Case LCase(Trim(Category))
            Case "notification":
            If DateDiff("d", item.ReceivedTime, Now) > 14 Then
                Action = 1
            End If
        End Select
        Next
    End If

    Select Case Action
        Case 1: MsgBox ("Delete '" & item.Subject & "'") 'item.Delete
    End Select

    Action = 0
    Next
End Sub

(Könnte kürzer sein, ja - aber ich habe es so gebaut, dass es erweiterbar ist.)

Anmerkungen:

  1. Es sieht im Standard-Posteingang aus. Wenn Sie einen anderen Ordner möchten, müssen Sie den Ordner "Posteingang festlegen" ändern. Um in Unterordnern des Posteingangs zu suchen, fügen Sie am Ende der Zeile .Folders ("Ordnername") hinzu
  2. Derzeit wird geprüft, ob die E-Mail eine Kategorie "Benachrichtigung" hat. Wenn Sie eine andere Kategorie wünschen, fügen Sie diese in den Fall ein . Machen Sie es einfach in Kleinbuchstaben, weil ich sie alle in Kleinbuchstaben konvertiere - nur um sicherzugehen.
  3. Derzeit sind E-Mails ab einem Alter von 14 Tagen betroffen. Das sehen Sie in der Zeile If DateDiff .
  4. Derzeit wird nicht gelöscht, sondern nur eine Benachrichtigung angezeigt. Damit es tatsächlich funktioniert, müssen Sie die MsgBox am unteren Rand des Sub entfernen und die Zeile wie folgt beibehalten:

        Case 1: item.Delete
    

Vielleicht möchten Sie sich diese beiden Forenbeiträge ansehen, um herauszufinden, ...

BlaM
quelle