如何将免责声明添加到 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 StringDim HTMLDisclaimer As StringImplements IEventIsCacheableImplements CDO.ISMTPOnArrivalPrivate Sub IEventIsCacheable_IsCacheable()    'Just returns S_OK.End SubPrivate 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 SubPrivate 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 = cdoRunNextSinkEnd Sub					
  4. 示例免责声明文本替换为您自己的免责声明文本,然后生成 DLL。

注册事件接收器

若要注册事件接收器,使用 $ 安装与 Exchange 软件开发工具包 (SDK) Smtpreg.vbs 文件。
  1. 一个命令提示符找到 \Exchange SDK\SDK\Support\CDO\Scripts 文件夹,然后键入以下内容: cscript smtpreg.vbs / 添加 1 OnArrival SMTPDisclaimer SMTPEventSink.Disclaimer"邮件 from=*@your-domain-here.com"

    如果该命令成功,您将收到一条成功消息由脚本产生的。
  2. 若要撤消此事件的注册键入以下: cscript smtpreg.vbs/remove 1 OnArrival SMTPDisclaimer
有关管理事件绑定的其他信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:

测试事件接收器

若要测试事件接收器,请将电子邮件发送给是您的组织的外部 SMTP 收件人。在收件人收到免责声明文本添加到该消息的结尾与修改的消息。

注意如果您使用一个 MAPI 客户端如 Microsoft Outlook 发送电子邮件邮件收件人不会收到一封已修改的电子邮件。这是因为通过 MAPI 提交的电子邮件不是一个 SMTP 格式时触发 SMTP 传输事件,该电子邮件。因此,则不保留事件的代码所做的更改。
参考
有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
273233不能更改 CDO SMTP 事件接收器中的 MAPI 邮件内容

警告:本文已自动翻译

属性

文章 ID:317327 - 上次审阅时间:12/07/2015 08:51:38 - 修订版本: 8.7

Microsoft Exchange Server 2003 Standard Edition, Microsoft Exchange Server 2003 Enterprise Edition, Microsoft Exchange 2000 Server 标准版, Collaboration Data Objects for Exchange 2000, Microsoft Collaboration Data Objects 2.0

  • kbnosurvey kbarchive kbmt kbhowtomaster KB317327 KbMtzh
反馈