Cookies help us deliver our services. By using our services, you agree to our use of cookies.
Tip: Other languages are Google-Translated. You can visit the English version of this link.
Log in
x
or
x
x
Register
x

or

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

Reply to All exclude Myself in outlook

When we use Reply to all function in Outlook, we may add our accounts into To field too if the emails you receievd contains two more your accounts. In this case, you may want to remove your accounts from the To and CC fields. Ktools for Outlook's My Names can do you a favor on solving this job quickly. Only need one click, all myselft accounts in Outlook will be removed from To and CC fields. Click for 45 days free trial!
doc reply exclude account
doc arrow dowm

doc reply exclude account 2
 
Kutools for Outlook: with dozens of handy Outlook add-ins, free to try with no limitation in 45 days.

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("example1@126.com", "example2@126.com", "example3@126.com")
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

doc check recipient address before sending 1

In the code, you can change ("example1@126.com", "example2@126.com", "example3@126.com") 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.

doc check recipient address before sending 2 doc arrow right doc check recipient address before sending 3

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.
doc check recipient address before sending 4

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 = "example1@gmail.com"
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.



Kutools for Outlook

More than 100 Advanced Functions for Outlook 2010, 2013, 2016, 2019 and 365

screen shot kutools for outlook tiny for banner 201812

More Features  |  Free Download  |  Only $39.00 for hundreds of functions

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.