Eu olhei alto e baixo para todas essas peças necessárias para fazer esse filtro simples acontecer. Os filtros procmail do Unix são tão fáceis de usar em comparação. Todos os assistentes do Microsoft Outlook impedem um filtro simples usando curingas. Embora muitas condições de filtro de email que a Microsoft fornece por padrão sejam úteis, nada pode superar a flexibilidade e a personalização do código em execução.
- Escreva seu código.
Alt-F11 abre o editor de código VBA. Clique duas vezes em ThisOutlookSession. Escreva seu código. No meu caso, ele está usando um regex na linha de assunto e movendo-o não para o DefaultFolder, mas para o meu próprio pst em uma subpasta.
Sub filter(Item As Outlook.MailItem)
Dim ns As Outlook.NameSpace
Dim MailDest As Outlook.Folder
Set ns = Application.GetNamespace("MAPI")
Set Reg1 = CreateObject("VBScript.RegExp")
Reg1.Global = True
Reg1.Pattern = "(.*Abc.20.*)"
If Reg1.Test(Item.Subject) Then
Set MailDest = ns.Folders("Personal Folders").Folders("one").Folders("a")
Item.Move MailDest
End If
End Sub
- Execute o código para cada email recebido com uma regra.
Nas regras, selecione "Gerenciar regras e alertas ...". A nova regra será semelhante
Apply this rule after the message arrives run Project1.ThisOutlookSession.filter
Para obter isso, na Etapa 1: Selecione a (s) condição (s): basta clicar em Avançar. Confirme se isso se aplica a todas as mensagens clicando em OK. Para Selecionar ações, selecione "executar um script" e clique para escolher o script de filtro e selecione Avançar ou Concluir. Para Selecionar exceção (s), clique em Avançar ou Concluir. Dê um bom nome como vba-filter e marque Ativar esta regra. clique em Concluir. Como ele copia para uma pasta local, clique em OK quando pedir para confirmar que esta regra não funcionará no email que você verifica online ou em outro dispositivo. Clique em OK na caixa de diálogo Regras e alertas.
- O Outlook não gosta quando as macros não são assinadas. Para autoassinar suas macros, crie um certificado e use-o .