How do I base an outlook rule on the number of "To:" addresses?

There's no built-in way to do this, but you can achieve it with a macro.

Steps1:

  1. In Outlook, press Alt + F11 to open Microsoft Visual Basic.

  2. On the left side of the screen, expand the folder called Microsoft Office Outlook and double-click ThisOutlookSession.2

  3. In the window VbaProject.OTM - TheOutlookSession, select Application in the left and ItemSend in the right drop-down menu.2

  4. Replace the code that apperaed in the window's body by the following:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
        Dim Recipients As Integer
        Dim Start As Integer
        Dim Last As Integer
        Recipients = 1
        Do
            Start = Last + 1
            Last = InStr(Start, Item.To, ";")
            If Last = 0 Then Exit Do
            Recipients = Recipients + 1
        Loop
        If (Recipients > 10) Then
            Cancel = (MsgBox(Str(Recipients) & " recipients in To field.", vbOKCancel) = vbCancel)
        End If
    End Sub
    
  5. Press Ctrl + S to save.

  6. Press Alt + Q to return to Outlook.

This macro will display a warning if there are more than 10 recipients in the To field (based on the number of semicolons used to delimit the recipients). You can click OK to dismiss the warning or Cancel to abort.3


1 I'm using Outlook 2007 (in Spanish). I hope Outlook 2010 is similar.

2
screenshot

3
screenshot


Unfortunately, this is not possible with Outlook. While you can use third-party solutions to limit it (i.e., Thunderbird), you lose the functionality of Outlook itself. This is actually a great question, though, and I would love to see Microsoft provide a little better control over what you can and can't send out!