Um vor dem Senden einer Nachricht ein VBA-Script ausführen zu können, wird im speziellen Outlook Modul ThisOutlookSession die Funktion Application_ItemSend genutzt. Hier wird beispielhaft ein Script gezeigt, welches auf das Vorhandensein von externen Empfängern prüft und gewarnt, sobald ein externer Empfänger in der Adressatenliste (To, CC, BCC) vorhanden ist.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
Dim recv As String
recv = ""
'Listet alle Empfänger aus To, CC und BCC auf
For i = 1 To Item.Recipients.Count
If InStr(vbNull, Item.Recipients.Item(i).Address, "/O=DOMAIN", vbTextCompare) = 0 Then
If InStr(vbNull, Item.Recipients.Item(i).Address, "@domain.de", vbTextCompare) = 0 Then
recv = recv & vbCrLf & Item.Recipients.Item(i) & "<" & Item.Recipients.Item(i).Address & ">"
End If
End If
Next
'Das hier sind nur Strings, ohne weitere Eigenschaften
'recv = recv & vbCrLf & Item.TO
'recv = recv & vbCrLf & Item.CC
'recv = recv & vbCrLf & Item.BCC
If Len(recv) > 0 Then
'prompt = "E-Mail """ & Item.Subject & """ an folgende Empfänger wirklich senden?" & vbCrLf & recv
prompt = "Diese Mail enthält die folgenden externen Empfänger" & vbCrLf & recv & vbCrLf & vbCrLf & "Wollen Sie die Mail wirklich senden?"
If MsgBox(prompt, vbYesNo + vbQuestion, "Mail an externe(n) Empfänger bestätigen") = vbNo Then
Cancel = True
End If
End If
End Sub