邮件服务器-邮件系统-邮件技术论坛(BBS)

标题: exchange2003免责声明不生效 [打印本页]

作者: linn_lee    时间: 2008-5-21 23:30
标题: exchange2003免责声明不生效
按MS的KB http://support.microsoft.com/kb/317680/zh-cn的方法,设置之后不生效!不知道为什么?
环境:EXCHANGE 2003 SP2 ENTERPRISE,前后端都设置过了,其实我也不知道在前端还是后端设置,设置之后,不管用MAPI方式,还是SMTP方式,往组织外的一个 SMTP 收件人发送电子邮件,都没有免责声明!请高手指点,TKS![attach]4768[/attach]

作者: dinnes    时间: 2008-5-22 08:59
我以前也是按这个KB测试过,但也没有成功。高度关注中!
作者: michael2046    时间: 2008-5-22 09:09
哪位老大出来说说这个怎么设置啊
作者: michael2046    时间: 2008-5-22 09:12
首先,正如同您所查看到的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#
作者: linn_lee    时间: 2008-5-22 21:07
这个问题已经解决,在做这个设置的设置的时候,出了两个错误:
1.应该是在前端设置免责声明!
2.对那个EVENT SINK VB脚本研究不够,导致出现问题!
作者: dinnes    时间: 2008-5-23 09:06
linn_lee,可否将你的整个过程详细说明一下。我想知道通过Outlook MAPI这种方式的可否添加免责声明。3Q。
作者: antsly    时间: 2008-5-23 19:41
楼主,分享一个,我按KB测试了一下,也没有成功!!
作者: linn_lee    时间: 2008-5-25 20:07
标题: 回复 6楼 的帖子
几天没上了,还真有人对这个感兴趣,呵呵!
如果你是前后端环境,那直接设在前端就没问题了,如果这有一台EXCHANGE SERVER那就比较麻烦了!
作者: linn_lee    时间: 2008-5-25 20:12
<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>

你把这个脚本直接加上去,不做任何修改试试,如果能加上去,表示你设置步骤没问题,问题就在于这个脚上你修改的内容上了!
作者: antsly    时间: 2008-5-26 10:32
呵!免责声明设定成功。以下代码可供参考:
<SCRIPT LANGUAGE="VBScript">
Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)
   Dim text1,text2,text3
   text1="EMAIL CONFIDENTIALITY NOTICE:"
   text2="This electronic message and any attachments may be confidential. If you are not the intended recipient, please do not disclose the contents to anyone,and notify the sender by e-mail; delete the message and destroy all printed hard copies. Thank you for your cooperation."
   text3="Copyright  All Rights Reserved"

   TextDisclaimer = vbCrLf & text1 & vbCrLf & text2 & vbCrLf &text3
   HTMLDisclaimer = "<p></p><font style='font-size:13px;'><p><u><i>" &text1& "</u></i><br><br>" & text2 & "<br><br>" &text3&"</p></font>"
   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>
作者: linn_lee    时间: 2008-5-27 10:29
标题: 回复 10楼 的帖子
还是你对这个脚本理解得更深入,还定义了几个变量,强!
作者: michael2046    时间: 2008-5-27 11:37
10楼的脚本不错~~~~
作者: michael2046    时间: 2008-5-27 11:39
http://bbs.winos.cn/thread-35096-1-1.html
这个我写的
作者: 钉子    时间: 2008-5-27 23:54
标题: 回复 13楼 的帖子
我帮你上传上来




欢迎光临 邮件服务器-邮件系统-邮件技术论坛(BBS) (http://5dmail.net/bbs/) Powered by Discuz! X3.2