2013-07-20 10 views
6

Come è possibile ottenere Outlook per avvisare se si sta per inviare e-mail a un dominio esterno?Avvisa prima di inviare e-mail a domini esterni in Outlook

Invio di grandi quantità di e-mail ogni giorno è sempre possibile inviare erroneamente uno alla persona sbagliata. Questo è particolarmente un problema quando sono clienti o persone al di fuori della vostra azienda.

Utilizzare Alt + Enter per inviare rapidamente e-mail dopo averle digitate per me è spesso la causa in quanto non controllo i destinatari accuratamente.

ho trovato numerose implementazioni che non erano grandi così ho pensato di condividere la mia qui sotto ...

risposta

2
  1. Aggiungere il seguente codice all'evento Application_ItemSend in Outlook & cambiamento del dominio il proprio

  2. Cambiare il Macro Security a uno (notifcations per tutte le macro o Attiva tutte le macro)

Questo vi fornirà un avviso prima di inviare se 1 o più della vostra TO, CC o BCC indirizzo non è nel tuo dominio (ad esempio sotto @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 
+0

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

9

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.)
+0

Re: invia come allegato e-mail in altri programmi. Descritto nelle note qui http://www.outlookcode.com/d/code/setsavefolder.htm "... non funziona sui messaggi creati con i comandi File | Invia in programmi Office o comandi simili in Esplora risorse o in altri programmi. i comandi richiamano Simple MAPI, che ignora le funzionalità di Outlook. " – niton

+0

arrivati ​​qui dopo aver quasi commesso un errore di aggiustamento della carriera. Grazie per aver elencato cosa fare per gli sviluppatori non VBA. Spero di non fare di nuovo quell'errore! –

Problemi correlati