Note: The other languages of the website are Google-translated. Back to English
English English

如何阻止外发电子邮件到 Outlook 中的特定地址?

一般来说,Outlook 会向所有正常的电子邮件地址发送电子邮件,并且无法阻止向特定电子邮件地址发送电子邮件。 但是,有时,您可能需要阻止将电子邮件发送到 Outlook 中的特定电子邮件地址。 在这种情况下,本教程将介绍用于解决此任务的 VBA 代码。


使用 VBA 代码阻止外发电子邮件到特定地址

下面的 VBA 代码可以帮你一个忙,请这样做:

1. 启动 Outlook,然后按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口。

2。 然后,双击 本次展望会议 来自 项目-项目1 窗格,然后将以下代码复制并粘贴到空白代码窗口中:

VBA 代码:阻止外发电子邮件到特定地址

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updatby ExtendOffice
Dim xMail As Outlook.MailItem
Dim xRecipients As Outlook.Recipients
Dim xContactGroupFound As Boolean
Dim i, n As Long
Dim xRecipient As Outlook.Recipient
Dim xAddress As String
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
On Error Resume Next
If Item.Class <> olMail Then Exit Sub
Set xMail = Item
xContactGroupFound = True
Do While xContactGroupFound = True
  Set xRecipients = xMail.Recipients
  xContactGroupFound = False
  For i = xRecipients.Count To 1 Step -1
    If xRecipients(i).AddressEntry.DisplayType <> olUser Then
      For n = 1 To xRecipients(i).AddressEntry.Members.Count
        If xRecipients(i).AddressEntry.Members.Item(n).DisplayType = olUser Then
          xMail.Recipients.Add (xRecipients(i).AddressEntry.Members.Item(n).Address)
        Else
          xMail.Recipients.Add (xRecipients(i).AddressEntry.Members.Item(n).Name)
          xContactGroupFound = True
        End If
      Next
      xRecipients(i).Delete
    End If
  Next i
  xRecipients.ResolveAll
Loop
For Each xRecipient In xRecipients
  xAddress = xRecipient.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS)
  If VBA.Trim(xAddress) = "" Then
    xAddress = xRecipient.Address
  End If
  If xAddress = "yy@addin99.com" Then    'change this email address to your need
    If MsgBox("Do you want to email to " & Chr(34) & xAddress & Chr(34) & "?", vbExclamation + vbYesNo, "Kutools for Outlook") = vbNo Then
      xRecipient.Delete
    End If
  End If
Next
If xMail.Recipients.Count = 0 Then
  Cancel = True
End If
End Sub
备注:在上面的代码中,您应该将电子邮件地址更改为您自己的。

3. 然后,保存并关闭此代码窗口。 现在,在发送电子邮件时,如果在收件人列表中找到特定的电子邮件地址,则会弹出一条提示消息,如下图所示。 点击 没有,特定的电子邮件地址将被立即删除。

4. 发送电子邮件后,您可以在 发送的邮件 文件夹中,特定的电子邮件地址已从收件人中排除,请参见截图:


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

  • 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
  • BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
  • 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
  • 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
  • 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。
拍摄kutools前景kutools选项卡1180x121
拍摄kutools前景kutools加标签1180x121
 
按评论排序
注释 (0)
还没有评分。 成为第一位评论!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点