如何根据“收件人:”地址的数量建立Outlook规则?


6

我想创建一个Outlook规则,阻止我发送“To:”行中包含十个以上电子邮件地址的电子邮件。这甚至可能吗?我在Windows 7 64位上使用Outlook 2010。

我的推理: 我向大量地址发送了一封分发信。我通常会将此电子邮件发送给自己,并在“BCC:”行中显示通讯组列表地址。每隔一段时间我就会陷入困境并意外地将分发列表地址放在“收件人:”行上。这是一个问题,因为每个电子邮件收件人都会看到列表中的所有地址。我希望Outlook阻止我这样做,或者至少在发送之前警告我。

我也欢迎有关如何解决这个问题的建议。

Answers:


3

没有内置的方法可以做到这一点,但你可以用宏实现它。

脚步 1

  1. 在Outlook中,按 Alt键 + F11 打开 Microsoft Visual Basic

  2. 在屏幕左侧,展开名为的文件夹 Microsoft Office Outlook 然后双击 ThisOutlookSession 2

  3. 在窗口 VbaProject.OTM - TheOutlookSession , 选择 应用 在左边和 ItemSend 在右侧下拉菜单中。 2

  4. 用以下内容替换窗口主体中出现的代码:

    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
        Dim Recipients As Integer
        Dim Start As Integer
        Dim Last As Integer
        Recipients = 1
        Do
            Start = Last + 1
            Last = InStr(Start, Item.To, ";")
            If Last = 0 Then Exit Do
            Recipients = Recipients + 1
        Loop
        If (Recipients > 10) Then
            Cancel = (MsgBox(Str(Recipients) & " recipients in To field.", vbOKCancel) = vbCancel)
        End If
    End Sub
    
  5. 按Ctrl + 小号 保存。

  6. Alt键 + Q 返回Outlook。

如果中有超过10个收件人,此宏将显示警告 字段(基于用于分隔收件人的分号数)。你可以点击 OK 解雇警告或 Cancel 中止。 3


1 我正在使用Outlook 2007(西班牙语)。我希望Outlook 2010类似。

2
screenshot

3
screenshot


1

不幸的是,Outlook无法做到这一点。虽然您可以使用第三方解决方案来限制它(即Thunderbird),但您将失去Outlook本身的功能。这实际上是一个很好的问题,我希望看到微软能够更好地控制你能发出什么,不能发出什么!


我以前很怕那个。谢谢你的回答。
Erick

没问题;我无法计算我所做的事情,正是你试图阻止自己做的事情。规则不灵活,实在太糟糕了!
Andrew M.

0

我接受了Sudo的回答,并将其计入CC和BCC的收件人,以防万一有人想要它:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim Recipients As Integer
    Dim Start As Integer
    Dim Last As Integer
    Dim RecipientFields As String
    Recipients = 1

    RecipientFields = Item.To

    If (Item.CC <> "") Then
        RecipientFields = RecipientFields + ";" + Item.CC
    End If

    If (Item.BCC <> "") Then
        RecipientFields = RecipientFields + ";" + Item.BCC
    End If

    Do
        Start = Last + 1
        Last = InStr(Start, RecipientFields, ";")
        If Last = 0 Then Exit Do
        Recipients = Recipients + 1
    Loop

    If (Recipients > 6) Then
        Cancel = (MsgBox("You have " & Str(Recipients) & " recipients in To/CC/BCC fields.  Click OK to send.", vbOKCancel) = vbCancel)
    End If
End Sub
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.