Grazie a ojhhawkins per il codice sopra - davvero utile. Ho fatto una semplice iterazione per includere un elenco degli indirizzi email esterni nel testo MsgBox.
Parola di cautela - ho notato che l'avviso non viene visualizzato quando si utilizza l'Invia come allegato di posta elettronica in altri programmi, ad esempio Excel, Adobe Reader ecc Come niton rilevare:
Re : Invia come allegato e-mail in altri programmi. Descritto nelle note qui outlookcode.com/d/code/setsavefolder.htm "... non funziona sui messaggi creati con i comandi File | Invia in programmi di Office o comandi simili in Esplora risorse o altri programmi. Questi comandi richiamano Simple MAPI, che ignora la funzionalità di 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
Per aggiungere in realtà questo codice all'applicazione Outlook:
- Se non è possibile visualizzare la scheda Sviluppo sulla barra multifunzione, andare a File/Opzioni, scegliere Personalizza Nastro a sinistra e spunta Sviluppatore a destra.
- Dalla scheda dello sviluppatore scegliere Visual Basic.
- Espandere Progetto1, Oggetti di Microsoft Outlook e fare doppio clic su ThisOutlookSession (in alto a sinistra).
- Incollare il codice sopra nel modulo.
- Sostituisci il "esempio.com" nel codice copiato nel tuo dominio.
- Chiude l'editor VBA e salva le modifiche al modulo.
- Nella scheda Developer clic Macro Security, e modificare il livello di notifiche per tutte le macro o inferiore.
- Riavvia Outlook. (Il codice di cui sopra non inizializzare il contrario.)
Questo funziona in modo ottimale per la maggior parte dei casi, ad eccezione degli elenchi di distribuzione che contengono voci con dominio esterno (inoltre non rileva i contatti di posta che sono "nascondi da GAL"). – PatricK