12

Outlook 2010. Хотите создать правило, которое перемещает всю почту из моей папки «Входящие» в другую папку:

  • Был прочитан
  • Старше X дней

Я смотрел на Автоархивирование, но, похоже, оно не позволяет мне быть таким конкретным с моими критериями.

3 ответа3

8

Наилучший способ сделать это в настоящий момент - создать новую папку поиска с пользовательскими критериями, например, с элементами, измененными в определенную дату или ранее. Затем я щелкаю правой кнопкой мыши по папке и выбираю «Удалить все», которая отправляет все элементы из папки поиска в корзину.

5

Папки поиска - это ответ, однако ОП спрашивал о почте старше определенной даты. Если вы используете "измененный на прошлой неделе", то он показывает все за последнюю неделю и отфильтровывает вещи старше 1 недели. Для обратного, используйте язык как:

  • 8 дней назад
  • 1 неделю назад
  • так далее...

4

Я искал что-то подобное. Я должен использовать макрос, так как автоархивирование отключено для моей установки. Вот что я придумал:

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

Этот макрос привязан к последней фазе жизненного цикла приложения; он запускается при запуске Outlook. Вы, вероятно, также захотите подписать его (и доверять своей подписи), чтобы получать жалобы на безопасность.

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .