Edit the List of Recipients Before Sending

This macro removes some addresses from an email before it leaves your outbox.

Last modified: 2010/02/20 | Accessed: 23.706  | #81
◀ Previous sample Next sample ▶
Category-Manager Category-Manager
Access the master category list in the blink of an eye, share your color categories in a network, get a reminder service, and more.

Does is happen sometimes that you send an email to a recipient you don't want to send to? For instance, sometimes Outlook sends an email to yourself when you hit the 'Reply All' button.

This VBA example checks the list of recipients before sending, and it removes certain addresses from it.

Just copy the line of code starting with 'RemoveThis.Add...' as many times as you need it, and enter the addresses you never want to send an email to.

tip  How to add macros to Outlook
Private Sub RemoveRecipients(Item As Outlook.MailItem)
  Dim RemoveThis As VBA.Collection
  Dim Recipients As Outlook.Recipients
  Dim R As Outlook.Recipient
  Dim i&, y&
  Set RemoveThis = New VBA.Collection

  ' add addresses here
  RemoveThis.Add "abc@domain.de"
  RemoveThis.Add "test@domain.com"

  Set Recipients = Item.Recipients
  For i = Recipients.Count To 1 Step -1
    Set R = Recipients.Item(i)

    For y = 1 To RemoveThis.Count
      If LCase$(R.Address) = LCase$(RemoveThis(y)) Then
        Recipients.Remove i
        Exit For
      End If
End Sub

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  On Error Resume Next
  RemoveRecipients Item
End Sub
Determine the "identity" of your emails. Set with SAM the sender, signature and folder for sent items with the help of rules.
email  Send a message