ORF反垃圾邮件系统

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

 找回密码
 会员注册
查看: 9545|回复: 13
打印 上一主题 下一主题

[已解决] exchange2003免责声明不生效

[复制链接]
跳转到指定楼层
顶楼
发表于 2008-5-21 23:30:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按MS的KB http://support.microsoft.com/kb/317680/zh-cn的方法,设置之后不生效!不知道为什么?
环境:EXCHANGE 2003 SP2 ENTERPRISE,前后端都设置过了,其实我也不知道在前端还是后端设置,设置之后,不管用MAPI方式,还是SMTP方式,往组织外的一个 SMTP 收件人发送电子邮件,都没有免责声明!请高手指点,TKS!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?会员注册

x
沙发
发表于 2008-5-22 08:59:36 | 只看该作者
我以前也是按这个KB测试过,但也没有成功。高度关注中!
藤椅
发表于 2008-5-22 09:09:27 | 只看该作者
哪位老大出来说说这个怎么设置啊
板凳
发表于 2008-5-22 09:12:51 | 只看该作者
首先,正如同您所查看到的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#
报纸
 楼主| 发表于 2008-5-22 21:07:41 | 只看该作者
这个问题已经解决,在做这个设置的设置的时候,出了两个错误:
1.应该是在前端设置免责声明!
2.对那个EVENT SINK VB脚本研究不够,导致出现问题!
地板
发表于 2008-5-23 09:06:37 | 只看该作者
linn_lee,可否将你的整个过程详细说明一下。我想知道通过Outlook MAPI这种方式的可否添加免责声明。3Q。
7
发表于 2008-5-23 19:41:24 | 只看该作者
楼主,分享一个,我按KB测试了一下,也没有成功!!
8
 楼主| 发表于 2008-5-25 20:07:48 | 只看该作者

回复 6楼 的帖子

几天没上了,还真有人对这个感兴趣,呵呵!
如果你是前后端环境,那直接设在前端就没问题了,如果这有一台EXCHANGE SERVER那就比较麻烦了!
9
 楼主| 发表于 2008-5-25 20:12:33 | 只看该作者
<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>

你把这个脚本直接加上去,不做任何修改试试,如果能加上去,表示你设置步骤没问题,问题就在于这个脚上你修改的内容上了!
10
发表于 2008-5-26 10:32:36 | 只看该作者
呵!免责声明设定成功。以下代码可供参考:
<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>
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

小黑屋|手机版|Archiver|邮件技术资讯网

GMT+8, 2024-11-22 09:35

Powered by Discuz! X3.2

© 2001-2016 Comsenz Inc.

本论坛为非盈利中立机构,所有言论属发表者个人意见,不代表本论坛立场。内容所涉及版权和法律相关事宜请参考各自所有者的条款。
如认定侵犯了您权利,请联系我们。本论坛原创内容请联系后再行转载并务必保留我站信息。此声明修改不另行通知,保留最终解释权。
*本论坛会员专属QQ群:邮件技术资讯网会员QQ群
*本论坛会员备用QQ群:邮件技术资讯网备用群

快速回复 返回顶部 返回列表