首先,正如同您所查看到的KB317680, 我们可以通过实现SMTP的OnArrival事件槽的方法对邮件添加disclaimer。OnArrival是SMTP协议在传输邮件时的一个event,其包含在接口ISMTPOnArrival中。但是,OnArrival事件仅仅在邮件提交给SMTP传输协议时才会被触发。换言之,只有邮件被我们注册了SMTP Event Sink的SMTP virtual server通过SMTP协议接受后才可能添加该disclaimer。
因此,用ISMTPOnArrival:nArrival的方式添加disclaimer有如下注意事项:
1. 如果SMTP Event sink注册在邮箱服务器,通过Outlook、OWA提交的邮件不能添加disclaimer
这是因为通过Outlook/OWA提交的邮件不会通过SMTP协议提交给注册了EventSink的SMTP virtual
server,OnArrival事件不会被触发。详细的信息,您可以参考下面的链接:
You cannot modify MAPI messages that are trapped in an SMTP transport event sink
http://support.microsoft.com/kb/273233
2. 在同一个邮件服务器的内部邮件不会被添加disclaimer。
如上同一原因,同一台服务器上的邮箱见的邮件通讯不会通过SMTP协议,OnArrival事件是不会被触发的。
3. 用VBScript这种自动化的语言实现ISMTPOnArrival:nArrival方法效率比较低。
在一个繁忙的SMTP 服务上,这个event sink会被每一封邮件触发,而vbscript脚本自身的效率比较低,因此可能会造成性能瓶颈。
如果是同一个RG内的邮箱,不能添加disclaimer。当我们要实现添加disclaimer到外发邮件时,我们可以实现该ISMTPOnArrival:nArrival事件,并注册到FE或者邮件网关上。
此外,我们可以通过C#代码来实现,它的效率比vbscript要高,由于该问题涉及到开发,我们建议您将该问题发送到下面的论坛中,在那里您能够得到更好地帮助。
微软中文技术论坛(MSDN and TechNet) » Visual Studio » Visual C#