I'd like to have Outlook 2010 automatically move e-mails into folders designated by the person's name. For example:
- Click Rules
- Click Manage Rules & Alerts
- Click New Rule
- Select "Move messages from someone to a folder"
- Click Next
The following dialog is shown:
The next part usually looks as follows:
people or public group
- Select the desired person
- Select the desired folder
How would you automate those problematic manual tasks? Here's the logic for the new rule I'd like to create:
- Receive a new message.
- Extract the name of the sender.
- If it does not exist, create a new folder under Inbox
- Move the new message into the folder assigned to that person's name
I think this will require a VBA macro.
The code might resemble something like:
Public WithEvents myOlApp As Outlook.Application Sub Initialize_handler() Set myOlApp = CreateObject("Outlook.Application") End Sub Private Sub myOlApp_NewMail() Dim myInbox As Outlook.MAPIFolder Dim myItem As Outlook.MailItem Set myInbox = myOlApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) Set mySenderName = myItem.SenderName On Error GoTo ErrorHandler Set myDestinationFolder = myInbox.Folders.Add(mySenderName, olFolderInbox) Set myItems = myInbox.Items Set myItem = myItems.Find("[SenderName] = " & mySenderName) myItem.Move myDestinationFolder ErrorHandler: Resume Next End Sub
Split the code as follows:
Sent a test message and nothing happened. The instructions for actually triggering a message when a new message arrives are a little light on details (for example, no mention is made regarding
ThisOutlookSession and how to use it).