2013-07-20 11 views
6

Jak uzyskać Outlook, aby ostrzec Cię, jeśli masz zamiar wysłać e-mail do zewnętrznej domeny?Ostrzegaj przed wysłaniem e-maili do zewnętrznych domen w Outlooku

Wysyłanie dużej ilości wiadomości e-mail codziennie jest zawsze możliwe, aby wysłać niewłaściwą osobę do niewłaściwej osoby. Jest to szczególnie problematyczne, gdy są to klienci lub osoby spoza firmy.

Szybkie wysyłanie e-maili po ich wpisaniu jest często przyczyną, ponieważ nie dokładnie sprawdzam odbiorców.

Znalazłem liczne implementacje, które nie były świetne, więc myślałem, że chciałbym podzielić się kopalnia poniżej ...

Odpowiedz

2
  1. Dodaj poniższy kod do zdarzenia Application_ItemSend w Outlook & zmianę domeny, do własne

  2. Zmiana Macro Security albo (Notifcations dla wszystkich makr lub Włącz wszystkie makra)

To zapewni Ci ostrzeżenie przed wysłaniem jeśli 1 lub więcej swojego TO, CC lub BCC adres nie jest w domenie (np poniżej @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

Działa to doskonale w większości przypadków, z wyjątkiem list dystrybucyjnych, które zawierają wpisy z domeną zewnętrzną (również nie wybiera kontaktów pocztowych, które są "Ukryj z GAL"). – PatricK

9

Dziękuję ojhhawkins za powyższy kod - naprawdę przydatne. Zrobiłem prostą iterację, aby dołączyć listę zewnętrznych adresów e-mail w tekście MsgBox.

uwaga - Zauważyłem, że ostrzeżenie nie pojawia się podczas korzystania z e-mail Wyślij jako załącznik w innych programach, np Excel, Adobe Reader itp Jak niton zauważył:

Re : Wyślij jako załącznik e-mail w innych programach. Opisane w uwagach tutaj: outlookcode.com/d/code/setsavefolder.htm "... nie działa na wiadomościach utworzonych za pomocą poleceń Plik | Wyślij w programach pakietu Office lub podobnych poleceniach w Eksploratorze Windows lub innych programach. Te polecenia wywołują Simple MAPI, które pomija funkcję programu 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 

Aby faktycznie dodać ten kod do swojej aplikacji Outlook:

  • Jeśli nie można zobaczyć kartę Deweloper na pasku wstążki, przejdź do Plik/Opcje wybierz Dostosuj Wstążka po lewej stronie i zaznacz Developer po prawej stronie.
  • Z zakładki Developer wybierz Visual Basic.
  • Rozwiń Project1, Microsoft Outlook Objects i kliknij dwukrotnie ThisOutlookSession (u góry po lewej).
  • Wklej powyższy kod do modułu.
  • Zamień "example.com" w skopiowanym kodzie na swoją domenę.
  • Zamknij edytor VBA i zapisz zmiany w module.
  • Na karcie Developer kliknij Bezpieczeństwo makr i zmienić poziom na powiadomienia dla wszystkich makr lub niższych.
  • Uruchom ponownie program Outlook. (Powyższy kod nie będzie zainicjować inaczej.)
+0

Re: Wyślij jako załącznik do wiadomości e-mail w innych programach. Opisane w uwagach tutaj http://www.outlookcode.com/d/code/setsavefolder.htm "... nie działa na wiadomości utworzone za pomocą polecenia Plik | Wyślij w programach pakietu Office lub podobnych poleceniach w Eksploratorze Windows lub innych programach. Polecenia wywołują Simple MAPI, która omija funkcjonalność Outlooka. " – niton

+0

przybył tutaj po prawie popełnieniu błędu dostosowującego karierę. Dziękuję za wpisanie, co dla programistów spoza VBA. Mam nadzieję, że już nie popełnię tego błędu! –

Powiązane problemy