如何在 Visual Basic 的傳出 SMTP 郵件中加入一個免責聲明

文章翻譯 文章翻譯
文章編號: 317327 - 檢視此文章適用的產品。
本文章的有 Microsoft Visual Basic 指令碼版] 版本請參閱 317680
全部展開 | 全部摺疊

在此頁中

簡介

本文將逐步告訴您,如何使用 SMTP 傳輸事件接收器,以新增一個免責聲明到外送的 SMTP 電子郵件。

建立事件接收器

  1. 建立新的 Microsoft Visual Basic ActiveX DLL。專案 SMTPEventSink,名稱並再命名模組免責聲明。
  2. 專案參考 下, 新增 Exchange 2000 程式庫的 Microsoft CDO,然後再新增 [伺服器擴充物件 COM 程式庫。
  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。

註冊事件接收器

若要註冊事件接收器,使用 [Exchange 軟體開發套件 (SDK) 與安裝 Smtpreg.vbs 檔案]。
  1. 在命令提示字元下找出 \Exchange SDK\SDK\Support\CDO\Scripts] 資料夾,並且再輸入下列: cscript smtpreg.vbs / add 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer 」 郵件 from=*@your-domain-here.com"

    如果這個命令成功,您會收到指令碼所產生的成功訊息。
  2. 若要解除此事件的登錄中輸入下列: cscript smtpreg.vbs/移除 1 OnArrival SMTPDisclaimer
如需有關管理事件繫結的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站:
http://msdn2.microsoft.com/en-us/library/ms526620.aspx

測試事件接收器

若要測試事件接收器,傳送電子郵件訊息給 SMTP 收件者是您組織的外部。收件者會接收已修改的訊息以免責聲明文字新增到郵件的尾端。

附註如果您使用一個 MAPI 用戶端的如 Microsoft Outlook 來傳送電子郵件] 郵件收件者不會收到修改過的電子郵件訊息。這是因為提交的使用 MAPI 的電子郵件訊息不是一個 SMTP 格式電子郵件觸發 SMTP 傳輸事件時。因此,不保存事件的程式碼所做的變更。

?考

如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
273233無法變更 MAPI 郵件內容在 CDO SMTP 事件接收器

屬性

文章編號: 317327 - 上次校閱: 2007年11月30日 - 版次: 8.7
這篇文章中的資訊適用於:
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Collaboration Data Objects for Exchange 2000
  • Microsoft Collaboration Data Objects 2.0?應用於:
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • the operating system: Microsoft Windows 2000
關鍵字:?
kbmt kbhowtomaster KB317327 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:317327
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

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