VBOffice

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: 71.133  | #81
◀ Previous sample Next sample ▶
Reporter Reporter
VBOffice Reporter is an easy to use tool for data analysis and reporting in Outlook. A single click, for instance, allows you to see the number of hours planned for meetings the next month.

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
    Next
  Next
End Sub

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