Предупреждать перед отправкой сообщений электронной почты внешним доменам в Outlook

115
15

Как вы можете получить Outlook, чтобы предупредить вас, если вы собираетесь отправлять и отправлять по электронной почте во внешний домен?


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


Использование Alt + Enter для быстрой отправки писем после их ввода для меня часто является причиной, поскольку я не проверяю получателей полностью.


Я нашел множество реализаций, которые были невелики, поэтому я подумал, что поделюсь с вами ниже...

спросил(а) 2021-01-20T00:03:37+03:00 2 месяца, 3 недели назад
1
Решение
137

Спасибо ojhhawkins за код выше - очень полезно. Я сделал простую итерацию, чтобы включить список внешних адресов электронной почты в текст MsgBox.


Осторожно. Я заметил, что предупреждение не появляется, когда вы используете приложение "Отправить как электронную почту" в других программах, например Excel, Adobe Reader и т.д. niton указал:


Re: Отправить как приложение электронной почты в других программах. Описанный здесь примечания outlookcode.com/d/code/setsavefolder.htm "... не работает с сообщениями, созданными с помощью команд File | Send в программах Office или аналогичных командах в проводнике Windows или других программах. Эти команды вызывают Simple MAPI, которые обходит функции Outlook."


Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim recips As Outlook.Recipients
Dim recip As Outlook.Recipient
Dim pa As Outlook.PropertyAccessor
Dim prompt As String
Dim strMsg As String

Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

Set recips = Item.Recipients
For Each recip In recips
Set pa = recip.PropertyAccessor
If InStr(LCase(pa.GetProperty(PR_SMTP_ADDRESS)), "@example.com") = 0 Then
strMsg = strMsg & " " & pa.GetProperty(PR_SMTP_ADDRESS) & vbNewLine
End If
Next

If strMsg <> "" Then
prompt = "This email will be sent outside of example.com to:" & vbNewLine & strMsg & "Do you want to proceed?"
If MsgBox(prompt, vbYesNo + vbExclamation + vbMsgBoxSetForeground, "Check Address") = vbNo Then
Cancel = True
End If
End If
End Sub


Чтобы действительно добавить этот код в приложение Outlook:


    Если вы не видите вкладку "Разработчик" в панели ленты, перейдите в "Файл/Параметры", выберите "Настроить ленту слева" и отметьте "Разработчик" справа.
    На вкладке "Разработчик" выберите "Visual Basic".
    Разверните Project1, Объекты Microsoft Outlook и дважды щелкните ThisOutlookSession (вверху слева).
    Вставьте указанный выше код в модуль.
    Замените "example.com" в скопированном коде на ваш домен.
    Закройте редактор VBA и сохраните изменения в модуле.
    На вкладке "Разработчик" нажмите "Макро-безопасность" и измените уровень на "Уведомления для всех макросов" или "ниже".
    Перезапустить Outlook. (Код выше не будет инициализироваться иначе.)

ответил(а) 2021-01-20T00:03:37+03:00 2 месяца, 3 недели назад
75

    Добавьте приведенный ниже код в событие Application_ItemSend в Outlook и измените домен на свой


    Измените Macro Security на (Notifcations для всех макросов или Включить все макросы)


Это приведет к предупреждению перед отправкой, если в вашем домене нет 1 или более ваших адресов TO, CC или BCC (например, ниже @mycompany.com.au)

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim recips As Outlook.Recipients
Dim recip As Outlook.Recipient
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
Set recips = Item.Recipients
For Each recip In recips
Set pa = recip.PropertyAccessor
If InStr(LCase(pa.GetProperty(PR_SMTP_ADDRESS)), "@mycompany.com.au") = 0 Then
If MsgBox("Send mail to external domain?", vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
Cancel = True
Exit Sub
Else
Exit Sub
End If
End If
Next
End Sub

ответил(а) 2021-01-20T00:03:37+03:00 2 месяца, 3 недели назад
62

Я нашел две надстройки для Outlook, которые делают то же самое, если вы не хотите использовать VBA,


ответил(а) 2021-01-20T00:03:37+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема