В Outlook 2013 (Windows 8.1) при получении RSS-сообщений как добавить правило для выполнения сценария?

339
Herb

В Microsoft Outlook 2013 под Windows 8.1 у меня есть различные правила, которые выполняют несколько сценариев VBA.

Для этого у меня есть:

Files → Options → Trust Center → Macrosettings → Activate all macros 

А также запись в реестре:

HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security DWORD: EnableUnsafeClientMailRules Value: 1 

Теперь я хочу, чтобы входящие RSS-каналы также запускали выполнение скрипта, но я не могу заставить его работать. (Я уверен, что это сработало некоторое время назад (2 года?), Но это было на другом компьютере, к которому у меня больше нет доступа. Возможно, Microsoft еще раз "обновит систему безопасности"?)

Во всяком случае, чтобы добавить RSS-каналы, я использовал

Files → Account settings → RSS Feeds → New 

Один такой канал

http://rss.cnn.com/rss/edition_europe.rss 

Каналы работают хорошо, а сообщения получаются по желанию. По умолчанию они попадают в автоматически созданную папку под моей почтовой учетной записью на левой панели:

myname@mydomain.com ... RSS feeds ... CNN Europe 

Теперь, чтобы создать правило, я использую пустой шаблон правила, чтобы создать правило для сообщений, полученных мной.

Существует условие выбора «из произвольных RSS-каналов». Я выбираю его, и на следующей странице я выбираю «выполнить скрипт». Я выбираю нужный сценарий и заканчиваю правило.

Каналы генерируют сообщения, но сценарий никогда не вводится (я ставлю точку останова на первый исполняемый оператор).

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

myname@mydomain.com Inbox ... RSS ... CNN Europe 

Безрезультатно: правило просто не выполняется.

Есть намеки?

2
Видимо, в обновлении безопасности отключены сценарии. Сначала проверьте, все еще ли установлено значение EnableUnsafeClientMailRules или что-то отменено. Вы также можете запустить скрипт напрямую через [NewMail] (https://msdn.microsoft.com/en-us/VBA/Outlook-VBA/articles/application-newmail-event-outlook) или [ItemAdd] (https: //msdn.microsoft.com/en-us/VBA/Outlook-VBA/articles/items-itemadd-event-outlook) события, но его нужно будет записать в VBA. harrymc 6 лет назад 0
Я только что проверил, он все еще там. Но это должно было быть так, потому что его отсутствие не позволило бы появлению элемента флажка выполнить сценарий VBA. Помните, что скрипты VBA, применяемые к электронным письмам, работают нормально и, как и ожидалось. Но я не могу применить какой-либо скрипт VBA к папке, получающей RSS-каналы. Там нет ошибки или около того, сценарий просто не введен. Herb 6 лет назад 0
@harrymc, я использую объект `MailItem` как в` Public Sub ScanRSSPost (Item As Outlook.MailItem) `. Должен ли я использовать другой объект? Herb 6 лет назад 0
Я сам этого не делал, но я знаю, что в этом случае чаще рекомендуются NewMail или ItemAdd, чем MailItem. harrymc 6 лет назад 0
@harrymc, ты направил меня в правильном направлении. Если вы сделаете правильный ответ из этого, я бы приписал вам ответ и награду. Решение: (1) `Sub ScanRSSPost (Item As Outlook.PostItem)`, но это не будет отображаться в списке правил. Чтобы он появился, замените `PostItem` на` MailItem`, который работает, затем (2) создайте правило (для любого сообщения RSS выполните скрипт `ScanRSSPost`), затем (3) вернитесь к сценарию и замените` MailItem` «PostItem» (Outlook не будет жаловаться), а затем прокомментируйте эту процедуру в сценарии! Спасибо друг. Herb 6 лет назад 0

1 ответ на вопрос

1
harrymc

Обновление безопасности Microsoft фактически отключило сценарии правил, так как Microsoft обнаружила, что гораздо проще их отменить, чем устранять дыры в безопасности. Это означает, что PostItemсценарии даже не отображаются в списке при создании правила.

Таким образом, оставшийся путь заключается в использовании сценария VBA с событиями NewMail или ItemAdd, которые все еще работают.

Постер сообщает об этом хитром способе решения, которое сработало для него:

  1. Создать MailItemскрипт:

    Sub ScanRSSPost(Item As Outlook.MailItem) 
  2. Создайте правило следующим образом: На любом посте RSS выполните скрипт ScanRSSPost.

  3. Вернитесь к сценарию и замените MailItemна PostItem(Outlook не будет жаловаться).

Похожие вопросы