Visual Basic で送信する SMTP メッセージに免責事項を追加する方法

文書翻訳 文書翻訳
文書番号: 317327 - 対象製品
Microsoft Visual Basic Scripting Edition については、次の資料を参照してください。317680
すべて展開する | すべて折りたたむ

目次

はじめに

この資料では、SMTP トランスポート イベント シンクを使用して送信する SMTP 電子メール メッセージに、免責事項を追加する方法を、手順を追って説明します。

イベント シンクの作成

  1. Microsoft Visual Basic で ActiveX DLL を新規作成します。プロジェクト名を SMTPEventSink、モジュール名を Disclaimer とします。
  2. [プロジェクト] メニューの [参照設定] で、[Microsoft CDO for Exchange 2000 Library] と [Server Extension Objects COM Library] を追加します。
  3. モジュールに次のコードを入力します。
    Dim TextDisclaimer As String
    Dim HTMLDisclaimer As String
    
    Implements IEventIsCacheable
    Implements CDO.ISMTPOnArrival
    
    Private Sub IEventIsCacheable_IsCacheable()
        'Just returns S_OK.
    End Sub
    
    Private Sub Class_Initialize()
      'TODO: Replace the sample disclaimer text with your own text.
      TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "Sample Disclaimer Text."
      HTMLDisclaimer = "<p></p><p>DISCLAIMER:<br>Sample Disclaimer Text"
    End Sub
    
    Private Sub ISMTPOnArrival_OnArrival(ByVal Msg As CDO.IMessage, EventStatus As CDO.CdoEventStatus)
        If Msg.HTMLBody <> "" Then
            Dim szPartI As String
            Dim szPartII As String
            Dim pos As Integer
            
            'Search for the "</body>" tag and insert the disclaimer before that tag.
            pos = InStr(1, Msg.HTMLBody, "</body>", vbTextCompare)
            szPartI = Left(Msg.HTMLBody, pos - 1)
            szPartII = Right(Msg.HTMLBody, Len(Msg.HTMLBody) - (pos - 1))
            Msg.HTMLBody = szPartI + HTMLDisclaimer + szPartII
        End If
    
        If Msg.TextBody <> "" Then
            Msg.TextBody = Msg.TextBody & vbCrLf & TextDisclaimer & vbCrLf
        End If
        
        'Commit the content changes to the transport ADO Stream object.
        Msg.DataSource.Save
        EventStatus = cdoRunNextSink
    End Sub
    					
  4. サンプルの免責事項のテキストを実際に使用するテキストに置き換え、DLL をビルドします。

イベント シンクの登録

イベント シンクを登録するには、Smtpreg.vbs ファイルを使用します。このファイルは Exchange SDK と共にインストールされています。
  1. コマンド プロンプトで \Exchange SDK\SDK\Support\CDO\Scripts フォルダに移動し、cscript smtpreg.vbs /add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer "mail from=*@your-domain-here.com" と入力します。

    コマンドが正常に実行されると、スクリプトで生成された成功のメッセージが表示されます。
  2. このイベントの登録を解除するには、cscript smtpreg.vbs /remove 1 OnArrival SMTPDisclaimer と入力します。
イベントのバインド管理の関連情報については、次の MSDN (Microsoft Developer Network) Web サイトを参照してください。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cdosys/html/7406817f-b48f-4b62-86af-bd6703fca4f6.asp

イベント シンクのテスト

イベント シンクをテストするには、組織の外部にいる SMTP 受信者に電子メール メッセージを送信します。受信者は、末尾に免責事項が追加されたメッセージを受け取ります。

: Microsoft Outlook などの MAPI クライアントを使用して電子メール メッセージを送信する場合、受信者に届くメッセージは変更されません。これは、電子メール メッセージで SMTP トランスポート イベントが起動されるときに、MAPI を使用して送信した電子メール メッセージが SMTP 形式ではないためです。そのため、イベントのコードで行った変更は保持されません。

関連情報

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
273233 [PRB] CDOEX: CDO SMTP イベント シンクで MAPI メッセージの内容を変更できない

プロパティ

文書番号: 317327 - 最終更新日: 2007年11月26日 - リビジョン: 8.3
この資料は以下の製品について記述したものです。
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Collaboration Data Objects for Exchange 2000 6.0
  • Microsoft Collaboration Data Objects 2.0?を以下の環境でお使いの場合
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows 2000 Standard Edition
キーワード:?
kbhowtomaster KB317327
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com