asp利用CDOSYS發(fā)郵件應(yīng)注意的
CDOSYS是微軟IIS中ASP內(nèi)置的郵件發(fā)送組件,也即是CDO.Message,CDO (Collaboration Data Objects) 設(shè)計目的是用來簡化通信程序的創(chuàng)建。
它提供了簡單的郵件發(fā)送解決方案,如下是一段ASP利用CDOSYS發(fā)送郵件的代碼:
<%
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO.Message" '郵件主題
myMail.From="studstu@studstu.com" '郵件發(fā)送人地址
myMail.To="studstu2@studstu2.com" '郵件接收人地址
myMail.TextBody="This is CDO.Message test" '郵件內(nèi)容
myMail.Send
set myMail=nothing
response.write "OK" '郵件發(fā)送成功
%>
但在實際的使用中,這帶代碼其實并不一定能成功,如果是出現(xiàn)“CDO.Message.1 錯誤 '80040213'”或者“Send未執(zhí)行”等錯誤的話,大多情況是由于空間權(quán)限導(dǎo)致的,如果你使用的是管理員權(quán)限執(zhí)行比如本機(jī)測試時可以成功利用ASP的CDOSYS發(fā)送郵件,那在虛擬空間里就無法用ASP的CDOSYS發(fā)送郵件了嗎?
答案是有的,利用下面一段代碼:
<%
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" 遠(yuǎn)程SMTP服務(wù)器的名稱或IP
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") _
=25 '服務(wù)器端口
myMail.Configuration.Fields.Update
myMail.Send
set myMail=nothing
response.write "OK" '郵件發(fā)送成功
%>
這是因為很多虛擬主機(jī)只能調(diào)用本地SMTP來發(fā)送,即localhost,而且發(fā)信人地址必須是用這個郵件服務(wù)器的郵件頭,即studstu2@studstu2.com中的studstu2.com需與SMTP的localhost服務(wù)器在一服務(wù)器,這樣ASP利用CDOSYS發(fā)郵件才能成功。