Help and Support

How to add a disclaimer to outgoing SMTP messages in Visual Basic script

Article ID:317680
Last Review:October 25, 2007
Revision:10.3
This article was previously published under Q317680
For a Microsoft Visual Basic version of this article, see 317327 (http://support.microsoft.com/kb/317327/).
On This Page

SUMMARY

This step-by-step article shows how to use an SMTP transport event sink to add a disclaimer to outgoing SMTP e-mail messages.

Back to the top

Create the event sink

To create an event sink, paste the following code in a new file and save it as EventSinkScript.vbs.
<SCRIPT LANGUAGE="VBScript">
Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)
   TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf & "Sample Disclaimer added in a VBScript."
   HTMLDisclaimer = "<p></p><p>DISCLAIMER:<br>Sample Disclaimer added in a VBScript."

   If Msg.HTMLBody <> "" Then
      'Search for the "</body>" tag and insert our 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 ' Commit the changes into the transport Stream

   EventStatus = cdoRunNextSink
End Sub
</SCRIPT>

Back to the top

Register the event sink

To register your event sink, use the Smtpreg.vbs file, which is installed with the Exchange SDK. From a command prompt, browse to the ...\Exchange SDK\SDK\Support\CDO\Scripts folder and type the following (make sure that the path to EventSinkScript.vbs is correct):
cscript smtpreg.vbs /add 1 onarrival SMTPScriptingHost CDO.SS_SMTPOnArrivalSink "mail from=*@your-domain-here.com"
cscript smtpreg.vbs /setprop 1 onarrival SMTPScriptingHost Sink ScriptName "C:\EventSinkScript.vbs"
If the command succeeds, you receive a success message generated by the script.

To unregister this event, type the following:
cscript smtpreg.vbs /remove 1 OnArrival SMTPScriptingHost
For more information on registering events with Smtpreg.vbs, see the "Managing Event Bindings" topic on the following MSDN Web site:
http://msdn.microsoft.com/en-us/library/ms526620(EXCHG.10).aspx (http://msdn.microsoft.com/en-us/library/ms526620(EXCHG.10).aspx)
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
324021 (http://support.microsoft.com/kb/324021/) How to create a "catchall" mailbox sink for Exchange Server

Back to the top

Test the event sink

To test your sink, send an e-mail message to an SMTP recipient who is external to your organization. The recipient should receive a modified message with the disclaimer added to the end of the message.

Note If you use a MAPI client such as Microsoft Outlook to send the e-mail and if the Exchange mailbox resides on the same server as the event sink binding, the recipient may not receive the modified message. This is because messages that are submitted by using MAPI are not in SMTP format when the e-mail triggers the SMTP transport event. Therefore, changes that are made by the event's code are not persisted.

Back to the top

REFERENCES

For more information, click the following article number to view the article in the Microsoft Knowledge Base:
273233 (http://support.microsoft.com/kb/273233/) You cannot modify MAPI messages that are trapped in an SMTP transport event sink

Back to the top


APPLIES TO
Microsoft Exchange Server 2003 Enterprise Edition
Microsoft Exchange Server 2003 Standard Edition
Microsoft Exchange 2000 Server Standard Edition
Collaboration Data Objects for Exchange 2000
Microsoft Collaboration Data Objects 2.0

Back to the top

Keywords: 
kbhowtomaster KB317680

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.