asp利用CDOSYS发邮件应注意的
CDOSYS是微软IIS中ASP内置的邮件发送组件,也即是CDO.Message,CDO (Collaboration Data Objects) 设计目的是用来简化通信程序的创建。
它提供了简单的邮件发送解决方案,如下是一段ASP利用CDOSYS发送邮件的代码:
<%
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO.Message" '邮件主题
myMail.From="studstu@studstu.com" '邮件发送人地址
myMail.To="studstu2@studstu2.com" '邮件接收人地址
myMail.TextBody="This is CDO.Message test" '邮件内容
myMail.Send
set myMail=nothing
response.write "OK" '邮件发送成功
%>
但在实际的使用中,这带代码其实并不一定能成功,如果是出现“CDO.Message.1 错误 '80040213'”或者“Send未执行”等错误的话,大多情况是由于空间权限导致的,如果你使用的是管理员权限执行比如本机测试时可以成功利用ASP的CDOSYS发送邮件,那在虚拟空间里就无法用ASP的CDOSYS发送邮件了吗?
答案是有的,利用下面一段代码:
<%
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="studstu@studstu.com"
myMail.To="studstu2@studstu2.com"
myMail.TextBody="This is a message."
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") _
="localhost" 远程SMTP服务器的名称或IP
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _
=25 '服务器端口
myMail.Configuration.Fields.Update
myMail.Send
set myMail=nothing
response.write "OK" '邮件发送成功
%>
这是因为很多虚拟主机只能调用本地SMTP来发送,即localhost,而且发信人地址必须是用这个邮件服务器的邮件头,即studstu2@studstu2.com中的studstu2.com需与SMTP的localhost服务器在一服务器,这样ASP利用CDOSYS发邮件才能成功。