Это должно быть очень просто, но это не так.

Я хочу, чтобы Outlook запрашивал меня перед отправкой ответа всем.

Существует надстройка под названием NoReply для всех, но для этого по-прежнему требуется, чтобы пользователь активировал запрет на все ответы для каждого сеанса, что в основном противоречит его цели.

Приведенный ниже код работает, но применяется ко всем ответам, и я хочу применить его только к ответам всем.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    If MsgBox("Do you want to continue sending the mail?", vbOKCancel) <> vbOK Then
        Cancel = True
    End If
End Sub

Пример Microsoft должен работать, но это не так:

Public WithEvents myItem As MailItem
Sub Initialize_Handler()
 Set myItem = Application.ActiveInspector.CurrentItem
End Sub
Private Sub myItem_ReplyAll(ByVal Response As Object, Cancel As Boolean)
    Dim mymsg As String
    Dim myResult As Integer
    mymsg = "Do you really want to reply to all original recipients?"
    myResult = MsgBox(mymsg, vbYesNo, "Flame Protector")
    If myResult = vbNo Then
       Cancel = True
    End If
End Sub

Другие решения не являются бесплатными.

Любая помощь?

1 ответ1

0

Нашел его, и он включает проверку, чтобы предотвратить отправку в определенный список:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim str As String
Dim j As Integer
Dim splits() As String
Dim lbadFound  As Boolean
lbadFound = False
Set Recipients = Item.Recipients
receivers = Recipients.count
For i = receivers To 1 Step -1
    Set recip = Recipients.Item(i)
    If InStr(1, LCase(recip), "lists.bla.com") >= 1 Then
        lbadFound = True
    End If
Next i
splits = Split(Item.To, ";")
If receivers > 1 Or lbadFound Or UBound(splits) > 0 Then
    If MsgBox("Do you want to continue sending the mail?", vbOKCancel) <> vbOK Then
        Cancel = True
    End If
End If

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .