阿里云windows虛擬主機利用發(fā)信組件通過企業(yè)郵局的身份驗證方法發(fā)送郵件
如果您已經申請購買cdo發(fā)信組件(win2000:CDONTS或者win2003:CDOSYS),并使用企業(yè)郵局接收郵件,由于郵局服務端具備本地身份驗證規(guī)則,如果投遞服務器(您的站點)域名與企業(yè)郵箱域名相同情況下,您的站點投遞的郵件就會因無法通過企業(yè)郵局的本地身份驗證而被拒絕。給您帶來的問題是:“如何通過驗證并保證我的正常工作呢?”
我們只需要在發(fā)信組件程序模板上稍作修改就可以解決,具體方法如下:
一、CDONTS發(fā)信組件
你可以用下面的腳本樣例通過ASP發(fā)送E-MAIL
<%
set newmail=server.CreateObject("cdonts.newmail")
newmail.From="webmaster@www.yourdomain.com" //以主機名方式發(fā)送,此方法可以通過服務端本地身份驗證
newmail.value("Reply-To")="test@test.com" //默認回復地址(發(fā)件人提交的地址),避免被回復至"webmaster@www.yourdomain.com"
newmail.To = webmaster@yourdomain.com //企業(yè)郵局收件人地址
newmail.Subject="主題"
newmail.Body = "asp mail"
newmail.BodyFormat =0
newmail.MailFormat =0
newmail.Send
response.write "send ok!"
set newmail=nothing
%>
二、CDOSYS發(fā)信組件
<%
你可以用下面的腳本樣例通過ASP或者ASPX發(fā)送E-MAIL
<% p="">
'以下部分為系統(tǒng)配置,請勿更改
Set objMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\InetpubmailrootPickup"
objCDOSYSCon.Fields.Update
Set objMail.Configuration = objCDOSYSCon
'系統(tǒng)配置結束
'以下為用戶自行更改部分,請由程序員進行修改
objMail.From = "webmaster@www.yourdomain.com" //以主機名方式發(fā)送,此方法可以通過服務端本地身份驗證
objMail.Fields("urn:schemas:httpmail:reply-to") ="test@test.com" //默認回復地址(發(fā)件人提交的地址),避免被回復至"webmaster@www.yourdomain.com"
objMail.Subject = "win2003發(fā)信組件測試"
'把下面的email改成自己的
objMail.To = webmaster@yourdomain.com //企業(yè)郵局收件人地址
objMail.TextBody = "win2003測試發(fā)信組件正常"
objMail.Send
Set objMail = Nothing
Set objCDOSYSCon = Nothing
%>
<% p="">
以上方法實際上是在原有樣例的基礎上,通過修改發(fā)件人地址,以及增加設置默認回復的方法來實現(xiàn)的,請您參考測試。