Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.


I'd like to have Outlook 2010 automatically move e-mails into folders designated by the person's name. For example:

  1. Click Rules
  2. Click Manage Rules & Alerts
  3. Click New Rule
  4. Select "Move messages from someone to a folder"
  5. Click Next

The following dialog is shown:

Rules Wizard


The next part usually looks as follows:

  1. Click people or public group
  2. Select the desired person
  3. Click specified
  4. 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:

  1. Receive a new message.
  2. Extract the name of the sender.
  3. If it does not exist, create a new folder under Inbox
  4. Move the new message into the folder assigned to that person's name

I think this will require a VBA macro.

Related Links

Update #1

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

    Resume Next
End Sub

Update #2

Split the code as follows:

VBA Editing

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).

Thank you.

share|improve this question

1 Answer 1

up vote 2 down vote accepted

I'd forget using rules completely and instead make a VBA macro that's attached to the NewMail event that will create a folder (using the Folders.Add method) based on the SenderName property, and then move it there with the MailItem's Move method.

share|improve this answer
Thank you for the pointers. If only it were that simple. The instructions for creating a new mail event are not wholly comprehensive (e.g., the instructions assume knowledge of how to use ThisOutlookSession). –  Dave Jarvis Oct 17 '12 at 22:23

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.