Сценарий: пересылать все электронные письма из папки «Входящие» после того, как пользователи отправляют «запрос» (Outlook 2003)

2

Я ищу сценарий Outlook (2003).

Что мне нужно: я хочу переслать все свои электронные письма из почтового ящика-A (с ПК) в почтовый ящик-B (на моем телефоне). Подвох заключается в следующем: это правило должно выполняться, только когда я отправляю «запрос» на mailbox-A.

Что я сделал: я создал два правила в Outlook 2003.

Правило 1. Это правило пересылает все электронные письма из почтового ящика-A в почтовый ящик-B. Это правило работает, но оно не автоматизировано (запускается только тогда, когда я нажимаю кнопку «Запустить правила»). Я хочу получать письма только тогда, когда я хочу.

Rule2 - я создал второе правило в Outlook. Это правило запускается (само по себе), когда mailbox-A получает письмо с «get_mail» в качестве темы письма.

Моя цель: я хочу, чтобы rule2 запускал скрипт. Очевидно, этот скрипт должен запускать rule1.

Результат: все электронные письма из почтового ящика-A пересылаются в почтовый ящик-B.

Backgroud: Моя цель - читать мои рабочие электронные письма на моем телефоне, переключаясь между работой и домом. Отправляя электронное письмо с моего телефона на мой компьютер (с темой электронной почты get_mail), мой компьютер (mailbox-A) пересылает все электронные письма на мой телефон (mailbox-B).

Возможно ли это с помощью VBA? А как должен выглядеть код? У меня нет опыта работы со сценариями, но я в целом хорошо разбираюсь в компьютерах и программном обеспечении. Так что я смогу установить его, когда кто-нибудь поставит код.

( ps невозможно просто установить учетную запись pop / imap на моем телефоне)

user316237
источник

Ответы:

0

Да, возможно, чтобы одно правило вызывало другое правило. Вот процедура VBA для Outlook, которая должна работать:

Sub RunRuleToForwardEmail(MyMail As MailItem)

    Dim st As Outlook.Store
    Dim myRule As Outlook.Rule

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rule
    Set myRule = st.GetRules("change_this_to_whatever_the_the_name_of_rule1_is") 'change this line
    myRule.Execute

End Sub

Не забудьте изменить этот текст: change_this_to_whatever_the_the_name_of_rule1_is.

После сохранения проекта Outlook VBA отредактируйте действия правила2. После этого вы сможете выбрать вышеуказанный скрипт в списке опций.

Garrulinae
источник
Спасибо за быстрый ответ. Название правила на самом деле 'rule1'. Поэтому я изменил ваш код в «Set myRule = st.GetRules (« rule1 »)». Это правильно? Я был в состоянии выбрать сценарий как действие в rule2. К сожалению, это не сработало. Я сделал ошибку?
user316237
Хм, да, это правильно. Я попробовал это сам, и это сработало (хотя мое правило1 только классифицировало мою почту, но не пересылало ее). Добавьте этот код в начале процедуры: MsgBox "The RunRuleToForwardEmail VBA procedure is running". Поместите это на отдельной строке перед первым оператором Dim. Тогда попробуй это. Если код работает правильно, в Outlook должно появиться сообщение, предупреждающее вас. Если это сообщение не появляется, значит, что-то не так с правилом, которое должно вызвать его.
Garrulinae
Безуспешно :-(. Код выглядит следующим образом: [Link] Sub RunRuleToForwardEmail (MyMail As MailItem) MsgBox "Процедура RunRuleToForwardEmail VBA выполняется" Dim st As Outlook.Store Dim myRule As Outlook.Rule Dim rl As Outlook.Rule 'получить хранилище по умолчанию (там, где живут правила) Установите st = Application.Session.DefaultStore 'get rule. Установите myRule = st.GetRules (rule1). myRule.Execute End Sub
user316237
Aha - текст rule1должен быть окружен кавычками: "rule1". Сообщение должно было появиться, не так ли?
Garrulinae
Я добавил кавычки, ничего не изменилось. Я тоже не видел ни одного сообщения. Я добавил в rule1 «установить цвет флага зеленый». И к правилу2 «установите цвет флага фиолетовый». Когда приходит электронное письмо с темой get_mails, оно получает фиолетовый флаг. Есть ли другой способ создать «чек»?
user316237