如何在Visual Basic中向外发SMTP邮件添加免责声明
此分步文章介绍如何使用SMTP传输事件接收器向发送的SMTP电子邮件添加免责声明。
1. 创建一个新的Microsoft Visual Basic ActiveX DLL。将项目命名为SMTPEventSink,然后命名模块免责声明。
2. 在项目引用下,添加MicrosoftCDO for Exchange 2000 Library,然后添加服务器扩展对象COM库。
3. 将以下代码放在模块中:
4. DimTextDisclaimer As String
Dim HTMLDisclaimer As String
Implements IEventIsCacheable
Implements CDO.ISMTPOnArrival
Private Sub IEventIsCacheable_IsCacheable()
'Just returns S_OK.
End Sub
Private Sub Class_Initialize()
'TODO: Replace the sample disclaimer text with your own text.
TextDisclaimer = vbCrLf & "DISCLAIMER:" & vbCrLf &"Sample Disclaimer Text."
HTMLDisclaimer ="<p></p><p>DISCLAIMER:<br>Sample DisclaimerText"
End Sub
Private Sub ISMTPOnArrival_OnArrival(ByVal Msg As CDO.IMessage, EventStatus AsCDO.CdoEventStatus)
If Msg.HTMLBody <> "" Then
Dim szPartI As String
Dim szPartII As String
Dim pos As Integer
'Search for the"</body>" tag and insert the 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 Streamobject.
Msg.DataSource.Save
EventStatus = cdoRunNextSink
End Sub
1. 将示例免责声明文本替换为您自己的免责声明文本,然后构建DLL。
要注册事件接收器,请使用随Exchange软件开发工具包(SDK)一起安装的Smtpreg.vbs文件。
1. 在命令提示符下,找到\ Exchange SDK \ SDK \ Support \ CDO \ Scripts文件夹,然后键入以下内容:cscript smtpreg.vbs / add 1 OnArrivalSMTPDisclaimer SMTPEventSink.Disclaimer“mail from = * @ your-domain-here。 com“
如果此命令成功,您将收到脚本生成的成功消息。
2. 要取消注册此事件,请键入以下内容:cscript smtpreg.vbs / remove 1 OnArrivalSMTPDisclaimer
有关管理事件绑定的其他信息,请访问下面的Microsoft开发人员网络(MSDN)网站:
http://msdn2.microsoft.com/en-us/library/ms526620.aspx
要测试事件接收器,请向组织外部的SMTP收件人发送电子邮件。收件人收到修改后的消息,并将免责声明文本添加到邮件的末尾。
注意如果使用MAPI客户端(如Microsoft Outlook)发送电子邮件,则收件人不会收到修改后的电子邮件。这是因为当电子邮件触发SMTP传输事件时,使用MAPI提交的电子邮件不是SMTP格式。因此,事件代码所做的更改不会持久存在。
有关其他信息,请单击下面的文章编号,以查看Microsoft知识库中相应的文章:
273233无法更改CDO SMTP事件接收器中的MAPI消息内容
联系客服