最近有一朋友问,Exchange Server 2003能否添加免责声明,就是大家常见到一些企事业公司,在外部外网邮件时,在邮件的页脚处,附加的一半“免责”文本!心里想了一下,好像是有的,找了一些KB和说明给他看,他看了还是搞不懂,没实施成功!只实施成功了在POP3模式下的方法,这里我也翻阅了不少了国内,外论坛,Blog的说明,我这里也顺便列举一下,其实我也是基于他们邮件中提及的方法去做,在这里我做一个整合方案出来给大家看看!
Pop3模式下免责声明
1. 首先:在Exchange Server 2003 服务器下,打开记事本,建立一个脚本。内容如下:
<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 discliamer 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 pEventStatus = cdoRunNextSink End Sub </SCRIPT> |
脚本的效果是这样的,看看看着办,自己改内容
2. 然后,把文件保存成EventSinkScript.vbs,或者任何任何你自己需要的文件名。保存到C盘根目录。
3. 在你的Exchange服务器上面安装Exchange SDK。我用的是这个(http://download.microsoft.com/download/9/e/7/9e7fa92c-1226-4c30-ad7c-45c4875c7d38/exchangesdkdocs.exe),下载后,安装好SDK后,按照默认安装路径,在C:\Program Files\Exchange SDK\SDK\Support\CDO\Scripts,里面应该有2个脚本文件。
安装好SDK后,就可以注册事件接受器了。
3.运行--CMD--
Cd C:\Program Files\Exchange SDK\SDK\Support\CDO\Scripts
添加
cscript smtpreg.vbs /add 1 onarrival SMTPScriptingHost CDO.SS_SMTPOnArrivalSink "mail from=*@contoso.com"
cscript smtpreg.vbs /setprop 1 onarrival SMTPScriptingHost Sink ScriptName "C:\EventSinkScript.vbs"
移除
cscript smtpreg.vbs /remove 1 OnArrival SMTPScriptingHost
具体可以看附件,我做了一个批处理
注意:mail from=*,这里的意思是邮件发往哪里的地址域
以下是我的测试截图:
用outlook Express POP3模式
wangli@contoso.com Send hlz@contoso.com
hlz@contoso.com to receive wangli@contoso.com
以上测试说明,大家都是用 outlook Express POP3模式下发送邮件的话,都会有“免责声明”,但Exchange模式例外!
例如: A, B 都是outlook Express POP3模式,双发互发有 “声明”
而C是 Exchange模式登陆,C给A,B发时,无“声明”,但A,B给C发时,有“声明”
这里所说的Exchange登陆模式
其实到了这里,我想有些朋友已经知道这个是什么原理了···其实就是在每次发送E-mail时,当邮件到达Exchange服务器时,利用脚本,自动在邮件页脚附加 “声明”来实现的!但是这样一来,每次邮件都要加,必会引起一些性能的问题…所以加了后,大家可以通过性能监控一下,是否有性能瓶颈