Warn before sending messages to the wrong email address

Last reviewed on May 23, 2013

I pick up interesting problems looking for solutions on various forums, such as this one.

Can I create an Outlook Rule that will keep me from sending an email to the wrong address? The reason: I have various email addresses. On occasion, I intend to send a message to my own address and use the wrong address instead, sending an email to the same wrong person more than once.

You can't use a rule to protect you from yourself but if you realize it as soon as you hit send, you can use a rule to delay mail by a minute or two, to give you time to recover the message and change the address. I have more information at Defer delivery in Outlook. You could also disable autocomplete, since it is the main cause of this problem, but because its a very good time saver most of the time, a macro is better.

Alternately, you can use macros to help get the address right. Since the problem is likely due to your selecting the wrong address as you type in the To field, using macros to create and address messages will reduce some, if not all of the problems. You can also use a macro to check outgoing messages for an address.

Forward selected message to specific address

Create a macro for you address and assign the macro to a toolbar or ribbon button. Place the button(s) next to the Forward button to help you remember. You'll need one macro & button for each address you forward messages to.

Public Sub ForwardtoMe()
Dim oAccount As Outlook.Account
Dim oMail As Outlook.MailItem

Set oMail = Application.ActiveExplorer.Selection(1).Forward
oMail.Recipients.Add ("alias@domain.com")
    oMail.Display
  
End Sub

Check messages you send

This macro checks messages for one specific address and if it finds the address, allows you to cancel the send.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    
If InStr(LCase(Item.To), "bad@address.com") Then
      Prompt$ = "You sending this to bad@address.com. Are you sure you want to send it?"
       If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
         Cancel = True
       End If
  End If
    
End Sub

A slightly different version of the above macro checks messages you send for one of several addresses. If the address on the message is not one in the list (or there are multiple addresses in the list), it will ask if you really want to send.

While not the best option in my opinion, because it basically asks for confirmation every time you send, it may be a good solution in some cases.

To use, add your addresses to the Case line. This macro needs to be added to ThisOutlookSession to work.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    
   Select Case LCase(Item.To)
    Case "alias@domain.com", "alias2@domain3.com", "alias3@domain3.com"
        Item.Send
    Case Else
      Prompt$ = "You are not sending this to one of your addresses. Are you sure you want to send the Mail?"
       If MsgBox(Prompt$, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
         Cancel = True
       End If
    
    End Select
    
End Sub

How to use VBA code samples

To use either of these macros, open the VBA Editor using Alt+F11. Expand Project1.

The macro that checks addresses when you send messages needs to be in ThisOutlookSession.

The macro that forwards mail to a specific address can go into a separate Module. To add a module, right click on Project1 and choose Insert > Module.

Paste the code into the editor.

Change the addresses in the sample code to your own address.

The macro that checks address will run when you send messages.

To create buttons for the forward macro:

In Outlook 2010 or Outlook 2013:
Create a macro button

  1. Go to File, Options, and choose Customize Ribbon.
  2. Add a New Group to the list on the right side then Add the macro to the new group.
  3. Select Macros in Choose Commands from.

In Outlook 2007 and older:

Customize toolbar

  1. Right click in the toolbar area, choose Customize.
  2. Switch to the Commands tab.
  3. Select Macros under Categories.
  4. Drag the macro to anywhere on the Toolbar.

Written by

Diane Poremsky
A Microsoft Outlook Most Valuable Professional (MVP) since 1999 and involved in IT support since 1985, Diane is the author of several books and video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.