1

У меня есть правило Outlook, которое вызывается любыми входящими электронными письмами со словом "кризис" в теме. Проблема в том, что он вызывается любыми соответствующими ответами в нашей системе тикетов (это означает, что нет RE: или каким-либо другим способом определить, что это ответ). Поэтому после того, как я получу "кризисное" электронное письмо, в котором может быть тема, подобная следующей, я, без сомнения, получу еще 10-20 с точно такой же темой в следующие несколько дней, когда люди будут обсуждать билет.

System 2015.123.123134 C2315 CRISIS

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

Могу ли я сделать это с VBA как-нибудь? Должен ли я хранить журнал предметов, чтобы выполнить это? Есть другие идеи?

1 ответ1

0

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

Sub HSAlertRule(newMail As Outlook.MailItem)
    Dim EntryID As String
    Dim StoreID As Variant
    Dim mi As Outlook.MailItem
    Dim aType As String
    Dim found As Boolean
    found = False
    Dim oMail As Outlook.MailItem
    Dim Status As String
    Static targetAccount As String
    targetAccount = "me@myemail.com"


    On Error GoTo ErrHandler

    EntryID = newMail.EntryID
    StoreID = newMail.Parent.StoreID

    Set mi = Application.Session.GetItemFromID(EntryID, StoreID)

    Dim objNS As Outlook.NameSpace
    Set objNS = GetNamespace("MAPI")
    Dim objFolder, objInbox, objAlerts, objFirst As Outlook.MAPIFolder

    Set objFirst = objNS.Folders.GetFirst
    Set objInbox = objNS.Folders(targetAccount).Folders("Inbox")
    Set objAlerts = objInbox.Folders("Alerts")

    For Each oMail In objFolder.Items
        If oMail.subject = mi.subject Then
            found = True
        End If
    Next

    If found Then
        'ignore
        found = False
    Else
        SendMessage()
        'separate rule on this message for desktop alerts, etc.
        mi.Move objFolder
    End If
    Set mi = Nothing
    Exit Sub

ErrHandler:
    Debug.Print Err.Description
    Err.Clear
    On Error GoTo 0
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .