Outlook Shared MB сортирует отправленный элемент при отправке действия - PullRequest
0 голосов
/ 01 апреля 2019

У нас 7 пользователей в общем почтовом ящике.Мы хотели бы «сортировать» исходящие письма, в зависимости от «отправителя», во вложенные папки.Тем не менее, фильтр «от» не может быть применен, это всегда общее имя мб, и не зависит от «реального отправителя».

Большое спасибо за вашу помощь и подсказки Приятного вам дня Арно

Я пытался создать макрос, который ловит Application_ItemSend, но я не могу заставить его работать.Идея заключалась бы в следующем: - проверить, что текущий элемент является исходящим для общего MB (а не частного MB от пользователя, они оба смонтированы одновременно: if item.send = "xxx" - определить и сохранить почту как уникальную: setmySubject = item.subject - разрешить отправку письма - проверить папки SentItem Set Folder = oStore.GetDefaultFolder (olFolderSentMail) - перехватить недавно отправленное письмо по его «уникальному» id (Subject) и переместить его в жестко закодированную подпапку ...

Любые подсказки приветствуются. Я пытаюсь воспроизвести функцию ThunderBird, которая позволяет вам выбирать, где должны быть размещены копии отправленной электронной почты, на компьютерах, а не на сервере. Чтобы каждое письмо отправлялось через определенную учетную запись изопределенный компьютер (идентифицирующий конкретного пользователя) хранится в папке.

Sub ARTSortSent()
Dim olItems As Outlook.Items
Dim olItem As Outlook.MailItem
Dim i As Long, j As Long
Dim oStores As Outlook.Stores
Dim oStore As Outlook.Store
Dim Folder As Outlook.Folder
Dim mySignature As String
Dim Dest As Folder


Set oStores = Application.Session.Stores
    For Each oStore In oStores
    On Error Resume Next
        If oStore.DisplayName = "support@xxx.com" Then
        Set Folder = oStore.GetDefaultFolder(olFolderSentMail)
        Set olItems = Folder.Items
        mySignature = "Arno"
        Set Dest = Folder.Folders("ART")
         For i = olItems.count To 1 Step -1        'Check each message in reverse order
         Set olItem = olItems(i)
         If InStr(1, olItem.Body, mySignature, vbTextCompare) Or InStr(1, olItem.Body, "Arno", vbTextCompare) Then
         olItem.Move Dest
         End If
    Next i

Конец, если следующий конец Sub

Ожидаемые результаты описаны выше, фактические следующие: - если у меня несколькопользователи, тогда первый, применяющий его код, просто переместит письмо, если макрос сможет найти его подпись. Даже если hОн не является отправителем электронной почты, но на каком-то этапе участвовал в беседе.Это зависит от порядка правил, а не от фактического отправителя.

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