Outlook Regeln automatisch für Ordner ausführen lassen, die nicht im Posteingang sind

Outlook Regeln automatisch für Ordner ausführen lassen, die nicht im Posteingang sind

Ich habe derzeit mein Outlook mit Gmail eingerichtet. Ich habe einige Regeln definiert, die auf verschiedene Ordner (Labels) in meinem Konto angewendet werden. Ich habe in GMail bereits Filter eingerichtet, die dafür sorgen, dass E-Mails den Posteingang überspringen und in den entsprechenden Ordnern abgelegt werden.

Immer wenn ich eine neue E-Mail in diesen Ordnern erhalte, werden meine Regeln nicht ausgeführt (sie dienen nur zum Festlegen von Kategorien). Ich muss sie manuell ausführen. Ich denke, das liegt daran, dass die E-Mails nicht zuerst im Posteingang landen, sondern direkt im Ordner. Gibt es eine Möglichkeit, Outlook dazu zu bringen, Regeln für diese Ordner automatisch auszuführen? Eine geplante Ausführung sollte auch in Ordnung sein.

Antwort1

Hier ist es. Beachten Sie, dass dies spezifisch für den Junk-Ordner ist (olFolderJunk ist eine Outlook-Konstante) und dass jeder von mir erstellte Filter mit dem Präfix „JUNK_FILTER_“ ausgeführt wird.

Es ist optimistisch und hat praktisch keine Fehlerprüfung, also verwenden Sie es auf eigene Gefahr. Verwenden Sie es nicht, wenn Sie es nicht verstehen :)

Sub runRulesOnJunkFolder()
    Dim st As Outlook.Store
    Dim myRules As Outlook.Rules
    Dim rl As Outlook.Rule
    Dim count As Integer
    Dim ruleList As String
    Dim rulePrefix As String
    Dim ruleFolder As Long

    '
    Dim outlookApp As Outlook.Application
    Dim objNS As NameSpace


    ruleFolder = olFolderJunk
    rulePrefix = "JUNK_FILTER_"

    Set objNS = Application.GetNamespace("MAPI")
    Set objJunkfolder = objNS.GetDefaultFolder(ruleFolder)

    ' get default store (where rules live)
    Set st = Application.Session.DefaultStore
    ' get rules
    Set myRules = st.GetRules

    ' iterate all the rules
    For Each rl In myRules
        ' determine if it's an Inbox rule and rule name prefix matches
        If rl.RuleType = olRuleReceive And Left(rl.Name, Len(rulePrefix)) = rulePrefix Then

            ' if so, run it
            rl.Execute ShowProgress:=True, Folder:=objJunkfolder
            count = count + 1
            ruleList = ruleList & vbCrLf & rl.Name
        End If
    Next

    ' tell the user what you did
    ruleList = "These rules were executed against the folder: " & objJunkfolder.Name & vbCrLf & ruleList
    MsgBox ruleList, vbInformation, "Macro: runRulesOnJunkFolder"

    Set rl = Nothing
    Set st = Nothing
    Set myRules = Nothing
    Set objJunkfolder = Nothing
    Set objNS = Nothing
End Sub

Antwort2

Kategorien funktionieren bei IMAP-Konten nicht richtig. Alle Kategorien, die Outlook-Objekten in IMAP-Konten zugewiesen sind, werden nicht mit dem Server synchronisiert und werden daher nur in diesem bestimmten Outlook-Profil in diesem bestimmten Benutzerkonto in dieser bestimmten Windows-Installation angezeigt. Das einzige, was Sie mit IMAP und Outlook wirklich verwenden können, sind Standard-Ein/Aus-Flags (nicht die verschiedenen Typen, die GMail oder Exchange unterstützen).

Kategorien sind für die Verwendung mit Exchange-Konten vorgesehen, wo sie mit clientseitigen Regeln zugewiesen und dann mit dem Server synchronisiert werden können. Sie funktionieren auch gut mit POP3-Konten, wo die Kategorien zugewiesen und die E-Mails nach clientseitigen Regeln sortiert werden.

Als KategoriendürfenWenn Kategorien (mit clientseitigen Regeln) auf E-Mails zugewiesen werden, die bereits (mit serverseitigen Regeln) in Ordner auf einem Exchange-Server sortiert wurden, würde ich annehmen, dass Ihre Regeln nicht funktionieren, weil die Kategorien nicht wirklich für die Verwendung auf Nicht-Exchange-Konten vorgesehen sind.

Aufgrund der ungewöhnlichen Einrichtung der IMAP-Postfächer glaube ich nicht, dass GMail mit irgendeinem Desktop-E-Mail-Client zufriedenstellend genutzt werden kann.

Antwort3

Eine Möglichkeit hierfür besteht darin, einen wiederkehrenden Termin einzurichten, der ein Makro auslösen kann, wenn die Erinnerung angezeigt wird. Das Makro würde den Filter ausführen. Dies scheint bei vielen Terminen in Ihrem Kalender etwas umständlich zu sein, und es ist unwahrscheinlich, dass es ausgelöst wird, wenn Sie es möchten. Ich habe dies nicht persönlich getan, bin aber sicher, dass es möglich ist.

Was ichhabenFertig ist ein Makro, das alle Filter mit einem bestimmten Präfix für einen bestimmten Ordner ausführt. Das Makro wählt den Ordner aus, die Filter entscheiden über die Aktion (in meinem Fall „Löschen“). Es kann von jemandem angepasst werden, der VBA kennt.

Nachdem ich das Makro erstellt hatte, fügte ich der Outlook-Symbolleiste eine Schaltfläche hinzu, die es ausführt. Ich klicke auf die Schaltfläche, wann immer mir danach ist.

Ich kann den Quellcode veröffentlichen, wenn Sie der Meinung sind, dass Sie ihn Ihren Anforderungen entsprechend ändern können.

Antwort4

Sie können diese Regeln direkt in GMail festlegen:Verknüpfung.

verwandte Informationen