Пересылка электронной почты только в конкретную папку

Вопрос или проблема

Я наткнулся на пост на Super User, который касался вопроса пересылки электронных писем в Outlook. Один пользователь предоставил скрипт для использования.

Sub AutoForwardAllSentItems(Item As Outlook.MailItem)
Dim strMsg As String
Dim myFwd As Outlook.MailItem

Set myFwd = Item.Forward

myFwd.Recipients.Add "[email protected]"
myFwd.Send
Set myFwd = Nothing 
End Sub

Это хорошо сработало для меня, но как это будет работать, если я хочу автоматически пересылать электронные письма только из определенной папки? В папке уже есть электронные письма, которые автоматически направляются туда по их получению. Есть идеи?

Предполагая, что вы перенаправляете электронные письма в папку, используя правило, вы можете запустить этот скрипт в том же правиле, чтобы он применялся только при тех же условиях.

В противном случае макрос можно изменить так, чтобы он искал непрочитанные сообщения в текущей папке и пересылал их. Затем вы могли бы периодически вручную запускать макрос (добавьте к нему сочетание клавиш для удобства), находясь в этой папке, и он будет пересылать письма за вас.

Sub ForwardUnreadInFolder()
  Dim CurItem As Outlook.MailItem
  Dim myFwd As Outlook.MailItem
  Dim strMsg As String

  Set CurFolder = Application.ActiveExplorer.CurrentFolder
  Set AllItems = CurFolder.Items
  NumItems = CurFolder.Items.Count

  For i = 1 To NumItems

    DoEvents

    Set CurItem = AllItems.Item(i)

    If (CurItem.UnRead) Then

        Set myFwd = CurItem.Forward
        myFwd.Recipients.Add "[email protected]"
        myFwd.Send
        Set myFwd = Nothing

    End If

  Next

   MsgBox "Готово"
End Sub

Ответ или решение

Автоматическая пересылка электронной почты из определенной папки в Outlook

Ваша задача заключается в автоматической пересылке электронной почты, находящейся в конкретной папке Outlook. Существует несколько способов сделать это с использованием VBA (Visual Basic for Applications). Ниже представлен подробный подход, который поможет вам настроить автоматическую пересылку только для определенной папки.

Настройка правил для автоматической пересылки

В первую очередь, если ваши письма уже перенаправляются в нужную папку с помощью правил, вы уже на верном пути. Следующий шаг — это использование макроса, который будет обрабатывать только те письма, которые есть в этой папке.

Использование макроса

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

Sub ForwardUnreadInFolder()
  Dim CurItem As Outlook.MailItem
  Dim myFwd As Outlook.MailItem
  Dim CurFolder As Outlook.Folder
  Dim AllItems As Outlook.Items
  Dim NumItems As Long
  Dim i As Long

  Set CurFolder = Application.ActiveExplorer.CurrentFolder
  Set AllItems = CurFolder.Items
  NumItems = CurFolder.Items.Count

  For i = 1 To NumItems
    DoEvents

    Set CurItem = AllItems.Item(i)

    ' Проверка на тип элемента и на непрочитанное
    If TypeName(CurItem) = "MailItem" And CurItem.UnRead Then
        Set myFwd = CurItem.Forward
        myFwd.Recipients.Add "example@mail.com" ' Замените на нужный адрес
        myFwd.Send
        Set myFwd = Nothing
    End If
  Next

  MsgBox "Пересылка завершена"
End Sub

Пошаговая инструкция по использованию макроса

  1. Открытие редактора VBA:

    • В Outlook нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Создание нового модуля:

    • В редакторе выберите Insert -> Module, чтобы создать новый модуль.
  3. Вставка кода:

    • Скопируйте приведённый выше код и вставьте его в окно модуля.
  4. Сохранение и закрытие редактора:

    • Сохраните изменения и закройте редактор.
  5. Запуск макроса:

    • Для запуска макроса вы можете использовать сочетание клавиш Alt + F8, выбрать макрос ForwardUnreadInFolder и нажать "Run".

Настройка запуск макроса

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...