Using the "Rules and Alerts" option to "run a script", the list of scripts to run is empty. What makes a script appear in the list?
The argument must by type MailItem or MeetingItem for the subroutine to be available in the Rules Wizard in Outlook 2007. In Outlook 2010 and 2013 (and up), PostItem also works.
Something like this:
Public Sub ShowMessage(Item As Outlook.MailItem) 'code End Sub
Open Outlook's VBA editor by pressing Alt+F11 and expand Microsoft Office Outlook Objects then double click on ThisOutlookSession.
You'll type or paste the code into the module, then create the rule with the 'run script' Action and select this script
Create a Run a Script Rule
After the script is written, you need to add it to a rule.
If you have Outlook 2016 and run a script action is missing, see Run-a-Script Rules Missing in Outlook for the fix.
- Open Rules Wizard. In Outlook 2010 and 2013, it's on Outlook's Home ribbon,
Rules > Manage Rules & Alerts. Look on the Tools menu in older versions.
- Click New Rule.
- Select Apply Rule on messages I receive and click Next.
- Select your conditions and click Next.
- Select Run a script action (near the bottom).
- Click on a script.
- Select your script, click OK.
- Click Next then finish the rule.
For best results, all actions should be in the script.
More Run a Script Samples:
- Autoaccept a Meeting Request using Rules
- Automatically Add a Category to Accepted Meetings
- Blocking Mail From New Top-Level Domains
- Convert RTF Messages to Plain Text Format
- Create a rule to delete mail after a number of days
- Create Appointment From Email Automatically
- Delegates, Meeting Requests, and Rules
- Forward meeting details to another address
- How to Change the Font used for Outlook's RSS Feeds
- How to Process Mail After Business Hours
- Keep Canceled Meetings on Outlook's Calendar
- Move messages CC'd to an address
- Open All Hyperlinks in an Outlook Email Message
- Outlook AutoReplies: One Script, Many Responses
- Process messages received on a day of the week
- Read Outlook Messages using Plain Text
- Receive a Reminder When a Message Doesn't Arrive?
- Run a Script Rule: Change Subject then Forward Message
- Run a script rule: Reply to a message
- Run a Script Rule: Send a New Message when a Message Arrives
- Run Rules Now using a Macro
- Run-a-Script Rules Missing in Outlook
- Sort messages by Sender domain
- To create a rule with wildcards
- Use a Rule to delete older messages as new ones arrive
- How to process incoming messages in Microsoft Outlook (Outlookcode.com)
- How to create a script for the Rules Wizard in Outlook (MSKB)
- Retrieving Internet Headers Using VBA in Outlook 2007/2010 Instructions to send Internet headers to another address