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發郵件才能成功。



















