1

Я получаю два вида электронной почты: обсуждение и уведомления. Уведомления - это автоматически генерируемые электронные письма для таких вещей, как обновления кода, обновления отслеживания ошибок и т.д. У меня настроены фильтры, которые дают им категорию "Уведомление".

Я хочу, чтобы обсуждения продолжались до бесконечности, так как вы никогда не знаете, когда вам может понадобиться информация по электронной почте шесть месяцев назад. Но уведомления эфемерны, и нет необходимости, чтобы они засоряли дисковое пространство.

Есть ли способ сделать Outlook автоархивировать / автоудаление / очистить / истечь / независимо от того, что эти письма в зависимости от категории?

1 ответ1

1

Хорошо, я только что написал свой первый макрос Outlook - так что не вините меня, если он удаляет все ваши письма. Сделайте резервную копию, прежде чем пытаться! :)

В Outlook перейдите в Инструменты> Макросы> Макрос. Введите имя, которое вы хотите дать макросу. Я назвал мой "Delete_Old_Notifications".

Вот код макроса, который я написал:

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

(Может быть короче, да - но я построил его, чтобы быть расширяемым.)

Заметки:

  1. Это выглядит в стандартном почтовом ящике. Если вы хотите другую папку, вы должны изменить папку "Установить входящие". Чтобы посмотреть в подпапках папки "Входящие", добавьте .Папки ("foldername") в конце строки
  2. В настоящее время он проверяет, есть ли у почты категория "уведомление". Если вы хотите другую категорию, вставьте это в дело. Просто сделайте это строчными буквами, потому что я конвертирую их все в строчные буквы - просто чтобы быть уверенным.
  3. В настоящее время это влияет на почту в возрасте от 14 дней и выше. Смотрите это в строке If DateDiff.
  4. В настоящее время он на самом деле не удаляется, он просто показывает уведомление. Чтобы это действительно заработало, вам нужно удалить MsgBox в нижней части Sub и сохранить строку так:

        Case 1: item.Delete
    

Возможно, вы захотите посмотреть на эти два сообщения на форуме, чтобы узнать ...

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