Reguła programu Outlook - przenieś pocztę, która jest CZYTANA i starsza niż X dni

12

Outlook 2010. Chcesz utworzyć regułę, która przenosi całą pocztę z mojej skrzynki odbiorczej do innego folderu:

  • Został przeczytany
  • Jest starszy niż X dni

Patrzyłem na Automatyczną archiwizację, ale wydaje mi się, że nie pozwala mi być tak konkretnym z moimi kryteriami.

Szymon
źródło
Czy ktoś mógłby przekazać to zespołowi Microsoft Outlook?
Jayan,

Odpowiedzi:

8

Najlepszym sposobem, jaki znalazłem w tej chwili, jest utworzenie nowego folderu wyszukiwania z niestandardowymi kryteriami, np. Z elementami zmodyfikowanymi w określonym dniu lub wcześniej. Następnie klikam folder prawym przyciskiem myszy i wybieram opcję „Usuń wszystko”, która wysyła wszystkie elementy z folderu wyszukiwania do kosza.

Leon
źródło
To nie jest odpowiedź, ponieważ wiadomości nie są przenoszone do folderu, są tylko przenoszone do kosza .
Pro Backup
5

Foldery wyszukiwania są odpowiedzią, jednak OP zapytał o pocztę starszą niż określona data. Jeśli użyjesz opcji „zmodyfikowano w zeszłym tygodniu”, pokazuje ona wszystko w ciągu ostatniego tygodnia i odfiltrowuje rzeczy starsze niż 1 tydzień. Odwrotnie, użyj języka takiego jak:

  • 8 dni temu
  • 1 tydzień temu
  • itp...

wprowadź opis zdjęcia tutaj

Flat Cat
źródło
Świetnie, nie wiedziałem, że możesz pisać naturalny język dla wartości!
RipperDoc,
4

Szukałem czegoś podobnego. Muszę użyć makra, ponieważ automatyczne archiwizowanie jest wyłączone w mojej instalacji. Oto, co wymyśliłem:

Option Explicit
Private Sub Application_MAPILogonComplete()
    ' this runs on app startup
    Const MSG_AGE_IN_DAYS = 7

    Dim oFolder As Folder
    Dim oFilteredItems As Outlook.Items
    Dim oItem As MailItem
    Dim oDate As Date

    oDate = DateAdd("d", -MSG_AGE_IN_DAYS, Now())
    oDate = Format(oDate, "mm/dd/yyyy")

    ' you can use this command to select a folder
    'Set oFolder = Application.Session.PickFolder

    Set oFolder = Me.Session.Folders.GetFirst

    ' shows all the folder names
    'For Each fldr In oFolder.Folders
    '    Debug.Print fldr.Name
    'Next fldr

    ' this was the sub-folder I wanted to cleanup.
    Set oFolder = oFolder.Folders("Storage").Folders("batch runs")

    Debug.Print "checking " & oFolder.FolderPath
    Debug.Print "for msgs older than " & oDate

    ' you can modify the filter to suit your needs
    Set oFilteredItems = oFolder.Items.Restrict("[Received] <= '" & oDate & "' And [Unread] = True")

    Debug.Print "removing " & oFilteredItems.Count & " items"

    While oFilteredItems.Count > 0
        Set oItem = oFilteredItems.GetFirst
        Debug.Print "   " & oItem.UnRead & " " & oItem.Subject

        ' the remove method permanently deletes the item.
        oFilteredItems.Remove 1
        'Debug.Print oFilteredItems.Count & " items left"
    Wend

    Debug.Print ". end"

    Set oFolder = Nothing
    Set oFilteredItems = Nothing
    Set oItem = Nothing
End Sub

To makro jest dołączone do ostatniej fazy cyklu życia aplikacji; działa po uruchomieniu programu Outlook. Prawdopodobnie będziesz też chciał go podpisać (i zaufać swojemu podpisowi), aby otrzymywać skargi bezpieczeństwa.

HTH

użytkownik końcowy
źródło