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.