9

Outlook外部ドメインにメールを送信しようとしている場合、どうすれば警告を受け取ることができますか?

毎日大量の電子メールを送信すると、間違った人に誤って電子メールを送信する可能性が常にあります。これは、クライアントや社外の人である場合に特に問題になります。

Alt + Enter受信者を徹底的にチェックしていないため、メールを入力してすぐに送信するために使用することが原因であることがよくあります。

私は素晴らしいとは言えない多くの実装を見つけたので、以下で私のものを共有すると思いました...

4

3 に答える 3

13

上記のコードを提供してくれた ojhhawkins に感謝します - 本当に便利です。MsgBox テキストに外部電子メール アドレスのリストを含めるために、簡単な繰り返しを行いました。

注意事項 - 他のプログラム (Excel、Adobe Reader など) で [電子メール添付ファイルとして送信] を使用すると、警告が表示されないことに気付きました。nitonが指摘したように:

Re:他のプログラムで電子メールの添付ファイルとして送信します。こちらの注意事項に記載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 Objects を展開し、ThisOutlookSession (左上) をダブルクリックします。
  • 上記のコードをモジュールに貼り付けます。
  • コピーしたコードの「example.com」を自分のドメインに置き換えます。
  • VBA エディターを閉じて、変更をモジュールに保存します。
  • [開発] タブで [マクロ セキュリティ] をクリックし、レベルを[すべてのマクロの通知] 以下に変更します。
  • Outlook を再起動します。(上記のコードはそれ以外では初期化されません。)
于 2014-01-23T22:31:44.173 に答える
2
  1. 以下のコードをOutlookApplication_ItemSendの予定に追加し、ドメインを独自のものに変更します

  2. を (すべてのマクロの通知またはすべてのマクロを有効にする)のMacro Securityいずれかに変更します。

これにより、1 つ以上のTOCCまたは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
于 2013-07-20T00:22:44.747 に答える