Можете ли вы, ребята, помочь мне исправить сценарий ниже. Что мне нужно, так это если в теле письма будет <оно будет перенаправлено на мою личную почту. Я использую Outlook 2010. Вот пример текста письма:

"Это было быстро! Перезагрузка модема заняла менее 60 секунд. "

Если между <и 60 есть пробел, он будет переадресован на мою электронную почту, но если пробела нет, он не будет.

Public Sub FWItem(Item As Outlook.mailitem)
    Dim Email As Outlook.mailitem
    Dim Matches As Variant
    Dim RegExp As Object
    Dim Pattern As String

    Set RegExp = CreateObject("VbScript.RegExp")

    If TypeOf Item Is Outlook.mailitem Then

        Pattern = "(\s[<]\s)"
        With RegExp
            .Global = False
            .Pattern = Pattern
            .IgnoreCase = True
             Set Matches = .Execute(Item.Body)
        End With

        If Matches.Count > 0 Then
            Debug.Print Item.subject ' Print on Immediate Window
            Set Email = Item.Forward
                Email.subject = Item.subject
                Email.Recipients.Add "alias@domain.com"
                Email.Save
                Email.Send

        End If
    End If

    Set RegExp = Nothing
    Set Matches = Nothing
    Set Email = Nothing
    Set Item = Nothing
End Sub

Вот шаблон, который я использовал для фильтрации тела письма:

Pattern = "(\s[<]\s)"

Но это не сработало.

1 ответ1

0

Ваш вопрос неясен. Я предполагаю, что проблема в регулярном выражении, а не в том, что электронное письмо не отправляется (или по любой другой причине).

Я думаю, что ваша модель должна быть просто

(< )

Так что в вашем коде вы бы использовали

Pattern = "(< )"

Это будет соответствовать <и пробелу сразу после. В качестве таких

<60 не соответствует < 60 соответствует < 60 соответствует <60 не соответствует < Hello соответствует

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

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