Как переслать с помощью запуска сценария? - PullRequest
0 голосов
/ 15 января 2019

Я получаю письма от двух отправителей с двумя темами на определенный адрес.

Я установил правило:

from:   example@example.com or example2@example2.com  
sent to:  me@me.com  
and with:  Company return doc or Daily document Country in the subject  
except if the subject contains "FW:"

для запуска скрипта:

Sub myRuleMacro(Item As Outlook.MailItem)
    Dim selEmail As Outlook.MailItem
    Set selEmail = ActiveExplorer.Selection.Item(1).Forward
    selEmail.Recipients.Add "address@address.pl"
    selEmail.Send
    Set selEmail = Nothing
End Sub

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

Как выбрать почту из правила для запуска макроса?

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

Ответы [ 2 ]

0 голосов
/ 16 января 2019

У вас всех больше всего есть, должно быть

Пример

Option Explicit
Public Sub myRuleMacro(Item As Outlook.MailItem)
    Dim selEmail As Outlook.MailItem

    If TypeOf Item Is Outlook.MailItem Then
        Set selEmail = Item.Forward
            selEmail.Subject = Item.Subject
            selEmail.HTMLBody = Item.HTMLBody
            selEmail.Recipients.Add "address@address.pl"

            selEmail.Save
            selEmail.Send
    End If
End Sub

Нет необходимости в Selection.Item и убедитесь, что save перед отправкой

0 голосов
/ 15 января 2019

Письмо, по которому запускается правило, уже передано подчиненному Item as Outlook.MailItem - Sub myRuleMacro(**Item As Outlook.MailItem**)

Вы не используете этот предоставленный элемент и не выбираете РАЗЛИЧНЫЙ элемент при использовании Set selEmail = ActiveExplorer.Selection.Item(1).Forward

Вы можете просто использовать Item.Forward

.

Попробуйте

Sub myRuleMacro(Item As Outlook.MailItem)
   Dim newForward as MailItem
   Set newForward = Item.Forward
   newForward.Recipients.Add "address@address.pl"
   newForward.Send
End Sub

РЕДАКТИРОВАНИЕ: Для включения обновлений @Tony Dallimore в комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...