Bu basit filtrenin gerçekleşmesi için gereken tüm parçalar için yüksek ve alçak görünüyordum. Unix procmail filtrelerini kıyaslamadan kullanmak çok kolaydır. Tüm Microsoft Outlook sihirbazları joker karakter kullanarak basit bir filtre yoluna girerler. Microsoft'un varsayılan olarak sağladığı birçok e-posta filtresi koşulu yararlı olsa da hiçbir şey çalışan kodun esnekliğini ve özelleştirmesini yenemez.
- Kodunu yaz.
Alt-F11 VBA kod editörünü getirir. ThisOutlookSession'a çift tıklayın. Kodunu yaz. Benim durumumda konu satırında bir regex kullanıyor ve bunu bir alt klasörde DefaultFolder'a değil, kendi pst'ime taşıyor.
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
- Bir gelen her e-postanın kodunu bir Kuralla çalıştırın.
Kurallar altında "Kuralları ve Uyarıları Yönet ..." seçeneğini seçin. Yeni kural gibi görünecek
Apply this rule after the message arrives run Project1.ThisOutlookSession.filter
Bunu almak için, Adım 1 için: Koşulları seçin: ileriye tıklayın. Tamam'ı tıklatarak tüm iletiler için geçerli olduğunu onaylayın. Seçim eylemleri için "bir komut dosyası çalıştır" seçeneğini işaretleyin, ardından filtre komut dosyasını seçmek için tıklayın ve İleri veya Son'u seçin. İstisnaları seçin için İleri veya Son'a tıklayın. VBA-Filter gibi iyi bir isim verin ve Bu kuralı aç'ı işaretleyin. Son'u tıklayın. Yerel bir klasörle başa çıktığından, bu kuralın çevrimiçi olarak veya başka bir cihazdan kontrol ettiğiniz e-posta için işe yaramayacağını onaylamak istediğinde Tamam'ı tıklayın. Kurallar ve Uyarılar iletişim kutusunda Tamam'ı tıklayın.
- Makrolar imzalanmadığında Outlook bundan hoşlanmaz. Makrolarınızı otomatik olarak imzalamak için bir sertifika oluşturun ve kullanın .