要回答您最初的问题,支持如何检查 CDO。
Object Required
这是一个在实例化 CDO COM 对象时检查错误(或与此相关的任何错误)的快速示例。
Dim cdo, is_cdosupported
On Error Resume Next
Err.Clear
Set cdo = Server.CreateObject("CDO.Configuration")
is_cdosupported = (Err.Number <> 0)
On Error Goto 0
If is_cdosupported Then
Call Response.Write("CDO is supported")
Else
Call Response.Write("CDO not supported")
End If
在谷歌上搜索
在评论了几次之后决定深入研究Volusion(必须承认我没有遇到过,并且在 Google 中快速搜索后发现了这个链接。
引用VSMTP 密钥
提供了一个特殊的 ASP 类,用于 Volusion 的内置发送邮件组件 VSMTP。
您可以使用此类为您的商店使用 ASP 创建自己的发送邮件解决方案。请注意,本文中提供的信息适用于高级用户。该解决方案提供了通过 Volusion 标准的基于 POP 或基于 webmail 的解决方案发送电子邮件的替代方案。
如果您使用 Volusion 的标准电子邮件托管资源(POP、IMAP 或 Webmail),则无需更新您的商店或my.volusion.com帐户中的任何功能。
要在 Volusion 商店中使用 VSMTP 组件,您需要下载 Volusion 的 VSMTP ASP 类。
从Object Required
尝试实例化 CDO 组件时遇到的 ASP 组件错误来看,我会说Volusion 服务器不支持 CDO。
有一个使用 VSMTP ASP 类的简单示例
<%
Dim mailer
Set mailer = new vsmtp
mailer.VsmtpKey = "65539C7A-525C-4CB7-B36B-BFBBDD332DD6"
mailer.EmailSubject = "Test Subject"
mailer.EmailFrom = "test@testdomain.com"
mailer.EmailTo = "test@testdomain.com"
mailer.TextBody = "Hello World!"
mailer.HTMLBody = "Hello World"
mailer.AddAttachment Server.MapPath("/v/test1.txt")
mailer.AddAttachment "/v/test2.txt"
mailer.Send()
%>
最好的办法是调整现有脚本以使用 Volusion 支持的 VSMTP 定制类。
查看 VSMTP ASP 类,它看起来像是POST
对 ASP 端点 ( vsmtp.asp
) 的简单包装。
<%
Class vsmtp
Public VsmtpKey
Public EmailSubject
Public EmailFrom
Public EmailTo
Public TextBody
Public HTMLBody
Private Attachment
Private AttachmentFolder
Public Sub AddAttachment(ByRef FilePath)
If AttachmentFolder = "" Then
AttachmentFolder = Server.MapPath("/v")
End If
If StrComp(Left(FilePath,Len(AttachmentFolder)),AttachmentFolder,vbTextCompare) = 0 Then
FilePath = Replace(Mid(FilePath,Len(AttachmentFolder)-1),"\","/")
End If
If StrComp(Left(FilePath,3),"/v/",vbTextCompare) <> 0 Or InStr(FilePath,",") > 0 Then
Err.Raise 512, "vsmtp.AddAttachment", "Invalid Attachment Path"
End If
If IsEmpty(Attachment) Then
Attachment = FilePath
Else
Attachment = Attachment & "," & FilePath
End If
End Sub
Public Sub Send()
Dim HTTPRequest
Set HTTPRequest = CreateObject("WinHTTP.WinHTTPRequest.5.1")
HTTPRequest.Open "POST", "http://" & Request.ServerVariables("LOCAL_ADDR") & "/vsmtp.asp", False
HTTPRequest.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
HTTPRequest.SetRequestHeader "Host", Request.ServerVariables("SERVER_NAME")
HTTPRequest.Send _
"VsmtpKey=" & Server.URLEncode(VsmtpKey) &_
"&Subject=" & Server.URLEncode(EmailSubject) &_
"&FromEmailAddress=" & Server.URLEncode(EmailFrom) &_
"&ToEmailAddress=" & Server.URLEncode(EmailTo) &_
"&Body_HTML=" & Server.URLEncode(HTMLBody) &_
"&Body_TextOnly=" & Server.URLEncode(TextBody) &_
"&Attachment_CSV=" & Server.URLEncode(Attachment)
If HTTPRequest.ResponseText <> "True" Then
Set HTTPRequest = Nothing
Err.Raise 8, "vsmtp.Send", "Unable to send email. Check logs for details."
End If
Set HTTPRequest = Nothing
End Sub
End Class
%>