Encaminhar e-mail do Outlook ao filtrar usando a regra de macro

0

Vocês podem me ajudar a corrigir o script abaixo? O que preciso é se o corpo do email contiver < ele será encaminhado para o meu e-mail pessoal. Estou usando o Outlook 2010. Aqui está um exemplo de texto de e-mail:

"Isso foi rápido! Foram necessários apenas 60 segundos para reiniciar o modem".

Se houver um espaço entre < e 60, ele será encaminhado para o meu e-mail, mas se não houver espaço, não será.

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 "[email protected]"
                Email.Save
                Email.Send

        End If
    End If

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

Aqui está o padrão que eu usei para filtrar o corpo do email:

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

Mas não funcionou.

    
por user734594 02.06.2017 / 09:59

1 resposta

0

Sua pergunta não está clara. Eu estou assumindo que o problema é com o regex, e não que o e-mail não está sendo enviado (ou qualquer outro motivo).

Eu acho que seu padrão precisa ser simplesmente

(< )

Então, no seu código, você usaria

Pattern = "(< )"

Isto irá corresponder ao < e um espaço branco imediatamente depois. Como tal

<60 não corresponde < 60 corresponde < 60 corresponde <60 não corresponde < Hello corresponde

Aponto o último para mim que pode ser um problema se alguém usar as marcas de citação por outras razões ... < Fim da mensagem >

    
por 02.06.2017 / 12:14