Вопрос или проблема
Я наткнулся на пост на 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
Пошаговая инструкция по использованию макроса
-
Открытие редактора VBA:
- В Outlook нажмите
Alt + F11
, чтобы открыть редактор VBA.
- В Outlook нажмите
-
Создание нового модуля:
- В редакторе выберите
Insert -> Module
, чтобы создать новый модуль.
- В редакторе выберите
-
Вставка кода:
- Скопируйте приведённый выше код и вставьте его в окно модуля.
-
Сохранение и закрытие редактора:
- Сохраните изменения и закройте редактор.
-
Запуск макроса:
- Для запуска макроса вы можете использовать сочетание клавиш
Alt + F8
, выбрать макросForwardUnreadInFolder
и нажать "Run".
- Для запуска макроса вы можете использовать сочетание клавиш
Настройка запуск макроса
Чтобы упростить задачу, вы можете назначить горячую клавишу для запуска макроса. Это позволит вам активировать его, находясь в нужной папке, что упростит процесс пересылки.
Заключение
Теперь у вас есть эффективный инструмент для автоматической пересылки непрочитанных писем из определенной папки в Outlook. Эта функция может существенно повысить вашу продуктивность, позволяя вам сосредоточиться на более важных задачах, не тратя время на ручное пересылание документов. Не забывайте периодически проверять работу макроса и при необходимости вносить корректировки.