Email to Torsten Weber
Feed Icon
.NET User Group Leipzig

Mit dem Blogeintrag Outlook 2007 – Definierte Regeln per Makro aufrufen vor einiger Zeit hatte ich beschrieben, wie per Makro in Outlook definierte Regeln ausgeführt werden können. Vor kurzem erhielt ich die Frage, wie die definierten Regeln gegen jeden beliebigen Ordner ausführt werden können. Dazu muss man das Konzept der benannten Parameter von Visual Basic for Applications (VBA) kennen.

Eine Methode wird so aufgerufen (Erklärung Code siehe obigen referenzierten Blogeintrag):

actualRule.Execute

Unterstützt die Methode auch benannte Parameter, geht das so:

actualRule.Execute _
   ShowProgress:=False, _
   Folder:=Application.Session.GetDefaultFolder(olFolderJunk), _
   IncludeSubfolders:=False, _
   RuleExecuteOption:=OlRuleExecuteOption.olRuleExecuteAllMessages

Die Reihenfolge der Parameter ist dabei egal, dazu sind sie ja benannt. Wichtig ist für "C#-ler" nur, dass das auch als eine Zeile Anwendungscode geschrieben werden kann; dass "_" dient dem Zeilenumbruch im VB-Anwendungscode.

Wozu könnte man obigen Anwendungscode in Verbindung mit dem obigen Blogeintrag gebrauchen? In Outlook werden leider eintreffende E-Mails zuerst vom Junk-Mail-Filter bearbeitet und erst danach, ha, da hat Microsoft wieder "mitgedacht", von den definierten Regeln. Definiert man sich eine Regel, die die üblichen E-Mails mit z. B. einem Betreff wie "Viagra" sofort löscht, wenn diese nicht von einem Kontakt stammen, funktioniert das nicht. Warum? Diese E-Mails werden in den Junk-Mail-Ordner einsortiert und die definierten Regeln dann eben nicht mehr gegen diese eingetroffenen E-Mails ausgeführt. Werden die definierten Regeln gegen den Junk-Mail-Ordner aber per Makro ausgeführt, lässt sich das Prinzip nachträglich erreichen. Notiz ans Product Team in Redmond: Bitte ändern.

Definierte Regel in Outlook gegen Spam

Soll es nicht ein vordefinierter Ordner sein, gegen den definierte Regeln per Makro ausgeführt werden, sondern der aktuell angezeigte, ist das auch möglich. Da Ganze funktioniert dann so:

actualRule.Execute _
   ShowProgress:=False, _
   Folder:=Application.ActiveExplorer.CurrentFolder, _
   IncludeSubfolders:=False, _
   RuleExecuteOption:=OlRuleExecuteOption.olRuleExecuteAllMessages

Wednesday, February 13, 2008 12:39:18 AM (W. Europe Standard Time, UTC+01:00)
Vielen Dank für die weiterführenden Infos. Jetzt können die Regeln durch Makros hervorragend gegen beliebige Ordner ausgeführt werden. Insbesonde können wir jetzt den bei E-Mail-accounts mit Catch-All-Funktion rappelvollen Junk-Filter erleichtern, bevor wir ihn nach Irrläufern durchforsten. Jetzt klappt alles super.
Ali Eghbal
Friday, April 18, 2008 12:53:29 PM (W. Europe Standard Time, UTC+01:00)
Das ist mal ein interessantes Makro.
Super Tipp!
Danke
All comments require the approval of the site owner before being displayed.
Name
E-mail
(will show your gravatar icon)
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, sup, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Live Comment Preview

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

.NET User Group Leipzig

Categories

Calendar

<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)