Note: The other languages of the website are Google-translated. Back to English
登录  \/ 
x
or
x
注册  \/ 
x

or

通过Outlook发送之前如何检查收件人地址?

在某些时候,您可能会错过通过Outlook发送电子邮件时将一些重要的收件人添加到“收件人”,“抄送”或“密件抄送”字段中的情况。 在这里,我可以介绍一种在通过Outlook发送之前检查是否已添加特定电子邮件地址的方法。

使用VBA代码发送前检查地址


使用VBA代码发送前检查地址

在这里,我有两个代码可以帮助您解决此工作,您可以根据需要选择任何人。

1。 按 Alt + F11 k启用 Microsoft Visual Basic应用程序 窗口。

2.双击 本次展望会议 來自 Project1 窗格以打开代码编辑器,将下面的代码复制并粘贴到编辑器中。

VBA:发送前在“收件人”字段中检查收件人地址

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在发送1之前检查收件人地址

在代码中,您可以更改 ("example1@126.com", "example2@126.com", "example3@126.com") 给您所需的真实收件人。

3.然后在 Microsoft Visual Basic应用程序 窗口中,单击 工具 > 參考資料。 检查 Microsoft脚本运行时 复选框 参考-Project1 对话。

doc在发送2之前检查收件人地址 doc箭头向右 doc在发送3之前检查收件人地址

4。 点击 OK 并保存代码。

现在,如果在发送电子邮件时指定的收件人没有出现在“收件人”字段中,则会弹出一个对话框,提醒您是否发送电子邮件。
doc在发送4之前检查收件人地址

使用上面的代码,它仅检查以下位置的电子邮件地址 字段,如果您想签入 , CC 以及 BCC 字段,您可以使用以下代码。

VBA:发送前在“收件人/抄送/密件抄送”字段中检查收件人地址

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

使用此代码,您无需检查 Microsoft脚本运行时 复选框,只需直接保存代码即可生效。


Kutools for Outlook-为Outlook带来100个高级功能,并使工作更加轻松!

  • 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
  • BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
  • 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
  • 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
  • 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
拍摄kutools前景kutools选项卡1180x121
拍摄kutools前景kutools加标签1180x121
 
Say something here...
symbols left.
You are guest
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.