У меня есть правило Outlook 2007, которое копирует определенные исходящие сообщения в другую папку. Как автоматически пометить эти сообщения как «прочитанные»?

3795
arathorn

Сообщения успешно копируются в другую папку, но отображаются как непрочитанные.

«Пометить как прочитанное» действительно отображается как опция фильтра в списке действий при создании правила, которое применяется к входящим сообщениям, но я не вижу его при создании правила, применяемого к сообщениям OUTGOING . Как я могу сделать это?

Вот полный текст моей существующей строки описания правила:

Apply this rule after I send the message on this machine only move a copy to the Archive folder 

Обновление:
@ xxl3ww отмечает, что есть сценарии VB, которые могут выполнить это. Я предпочел бы не платить за один из них, хотя. Любые бесплатные альтернативы, которые кто-нибудь знает?

7
Я не думаю, что вы можете сделать это, не прибегая к написанию сценариев на VB ... Вероятно, проще пометить прочитанное вручную. pelms 14 лет назад 0
@pelms: VB скрипт будет в порядке. arathorn 14 лет назад 0
Большинство скриптов, которые вы ищете, стоят около 10 долларов. Если вы отметите пользовательское действие Google Outlook 2007 как прочитанное, вы получите массу результатов. xxl3ww 14 лет назад 1
Я думаю, что знаю, что нужно сделать, но не могли бы вы сделать снимок экрана / скопировать точное правило, которое вы используете в настоящее время, чтобы я мог скопировать вашу среду и протестировать ее здесь. William Hilsum 14 лет назад 0
@Wil: я добавил точную строку описания правила к вопросу. arathorn 14 лет назад 0

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

4
subman

Вам нужно будет включить макросы для работы следующего кода. В меню «Инструменты»> «Макросы» выберите «Предупреждения для всех макросов» или «Без проверок безопасности».

Нажмите Инструменты> Макросы> Редактор Visual Basic

Скопируйте и вставьте следующее:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Item.UnRead = False End Sub 

Это оно! (Вместе с вашим существующим правилом сообщений)

0
NickSentowski

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

Хотя это технически не является «исходящим» правилом, оно будет работать, если запустить его вручную. Я не думаю, что в офис встроен способ автоматически выполнять проверку.

Нет, действие «пометить как прочитанное» не указано как доступное действие для ** исходящих ** правил. Попробуйте и посмотрите. arathorn 14 лет назад 0
Редактировать мой ответ сейчас, чтобы включить снимок экрана NickSentowski 14 лет назад 0
В этом и заключается весь смысл моего вопроса: как сделать это в Outlook * автоматически *. arathorn 14 лет назад 0
Я уверен, что это может быть сделано в коде, но я не знаком со спецификой объектной модели Outlook ... Я посмотрю, смогу ли я создать сценарий для вас, но мне нужно, чтобы вы дали мне несколько дней. Мой подход будет заключаться в том, чтобы пометить все, что входит в целевую папку, как прочитанное, когда оно вставлено. Я думаю, что это будет самый простой способ. NickSentowski 14 лет назад 0
0
FoleyIsGood

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


Option Explicit '############################################## '### all code for the ThisOutlookSession module '### Module level Declarations 'expose the items in the target folder to events Dim WithEvents TargetFolderItems As Items  '############################################### Private Sub Application_Startup() 'some startup code to set our "event-sensitive" 'items collection  Dim myMailbox As String, myFolder As String  'You need to set these myMailbox = "Mailbox - My Name" myFolder = "Archive Folder Name"  Dim ns As Outlook.NameSpace  Set ns = Application.GetNamespace("MAPI") Set TargetFolderItems = ns.Folders(myMailbox).Folders(myFolder).Items  End Sub  '################################################# '### this is the ItemAdd event code Sub TargetFolderItems_ItemAdd(ByVal Item As Object) 'when a new item is added to our "Testing Folder" 'we can process it Dim myEmail As MailItem Set myEmail = Item myEmail.UnRead = False End Sub  '################################################# Private Sub Application_Quit()  Dim ns As Outlook.NameSpace Set TargetFolderItems = Nothing Set ns = Nothing  End Sub