How to check recipient addresses before sending through Outlook?
In some times, you may miss adding some important recipients into To, CC or BCC fields while sending E-mails through Outlook. Here, I can introduce a method to check if the specific email addresses have been added before sending through Outlook.
Check addresses before sending with VBA code
Check addresses before sending with VBA code
Here I have two codes can help you solving this job, you can choose anyone as you need.
1. Press Alt + F11 keys to enable Microsoft Visual Basic for Applications window.
2. Double click ThisOutlookSession from Project1 pane to open the code editor, copy and paste below code to editor.
VBA: check recipient address in To field before sending
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'UpdatebyExtendoffice20180523
Dim xAddressArr() As Variant
Dim xAddress As String
Dim xRecipient As Recipient
Dim xPrompt As String
Dim xYesNo As Integer
Dim xDictionary As Scripting.Dictionary
On Error Resume Next
Set xDictionary = New Scripting.Dictionary
xAddressArr = Array("", "", "")
For i = LBound(xAddressArr) To UBound(xAddressArr)
xDictionary.Add xAddressArr(i), True
Next i
For Each xRecipient In Item.Recipients
If xRecipient.Type = olTo Then
If xDictionary.Exists(xRecipient.Address) Then xDictionary.Remove xRecipient.Address
End If
Next
If xDictionary.Count = 0 Then GoTo L1
For i = 0 To xDictionary.Count - 1
If xAddress = "" Then
xAddress = xDictionary.Keys(i)
Else
xAddress = xAddress + "; " & xDictionary.Keys(i)
End If
Next i
xPrompt = "You are not sending this to: " & xAddress & ". Are you sure you want to send the Mail?"
xYesNo = MsgBox(xPrompt, vbQuestion + vbYesNo, "Kutools for Outlook")
If xYesNo = vbNo Then Cancel = True
L1:
Set xRecipient = Nothing
Set xDictionary = Nothing
End Sub
In the code, you can change ("", "", "") to the real recipients you need.
3. Then also in the Microsoft Visual Basic for Applications window, click Tools > References. Check Microsoft Scripting Runtime checkbox in References-Project1 dialog.
![]() |
![]() |
![]() |
4. Click OK and save the code.
Now If the specified recipients do not appear in To field while sending emails, a dialog will pop out to remind you if to send the email.
With above code, it only check the email addresses in To field, if you want to check in To, CC and BCC fields, you can use below code.
VBA: check recipient address in To/CC/BCC fields before sending
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'UpdatebyExtendoffice20180523
Dim xRecipients As Outlook.Recipients
Dim xRecipient As Outlook.Recipient
Dim xPos As Integer
Dim xYesNo As Integer
Dim xPrompt As String
Dim xAddress As String
On Error Resume Next
If Item.Class <> olMail Then Exit Sub
Set xRecipients = Item.Recipients
xAddress = ""
For Each xRecipient In xRecipients
xPos = InStr(LCase(xRecipient.Address), xAddress)
If xPos = 0 Then
xPrompt = "You sending this to " & xAddress & ". Are you sure you want to send it?"
xYesNo = MsgBox(xPrompt, vbYesNo + vbQuestion + 4096, "Kutools for Outlook")
If xYesNo = vbNo Then Cancel = True
End If
Next xRecipient
End Sub
With this code, you do not need to check Microsoft Scripting Runtime checkbox, just directly save the code to take effect.
Best Office Productivity Tools
Kutools for Outlook - Over 100 Powerful Features to Supercharge Your Outlook
β Email Automation: Auto Reply (Out of Office) / Schedule Send emails / Auto CC/BCC / Advanced Auto Forward / Auto Add Greating ...
β Email Management: Easily Recall Emails / Block Scam Emails / Delete Duplicate Emails / πAdvanced Search / Consolidate Folders ...
π Attachments Pro: Batch Save / Batch Detach / Batch Compress / Auto Save / Auto Detach / Auto Compress ...
π Interface & Interaction Magic: πMore Pretty and Cool Emojis / Brings Browser Tabs Right Into Your Outlook / Minimize Outlook Instead of Closing ...
π One-click Wonders: Reply All with Incoming Attachments / Anti-Phishing Emails / πShow Sender's Time Zone / Send to Recipients Separately ...
π©πΌβπ€βπ©π» Contacts & Calendar: Batch Add Contacts From Selected Emails / Split a Contact Group to Individual Groups / Remove Birthday Reminders ...
Over 100 Features Await Your Exploration! Click Here to Discover More.