在ASP中使用CDO發送郵件
在ASP(Active Server Pages)中發送郵件不是件困難的事情,需要的條件就是使用CDO組件(Collaborative Data Object),它是誰NT Option Pack 4安裝後就有的。為了確認CDO組件已經正確安裝在你的機器上,選擇“開始/控制台/添加、刪除程式/NT Option Pack 4”,看看是否SMTP服務已經安裝。如果沒有安裝,那麼運行下面顯示的代碼時將會發生錯誤(錯誤資訊類似於“Invaild class string”)。
在ASP中建立CDO組件執行個體的代碼如下:
〈 %
Dim objCDO
Set objCDO = Server.CreateObject("CDONTS.NewMail")
% 〉
現在可以發送郵件了!CDONTS.NewMail執行個體有一些明顯而且簡單的屬性與方法,下面來看看相關的代碼:
〈 %
’This code assumes the above CDO
’instantiation code is included
objCDO.To = "mitchell@4guysfromrolla.com"
objCDO.From = "gates@microsoft.com"
objCDO.cc = "barksdale@netscape.com,jobs@apple.com"
Dim txtSubject
txtSubject = "Hello Scott! We were wanting your advice on some programming issues. Please come to Redmond at your earliest convenience for a very fat check!"
objCDO.Subject = "Attn: Scott, we need you!!"
objCDO.Body = txtSubject
objCDO.Send
% 〉
這就是所有的一切。組件的幾個屬性簡單實用。執行上面的代碼後,一封郵件將從from gates@microsoft.com發往mitchelL@4guysfromrolla.com,並且抄送到barksdale@netscape.com 和 jobs@apple.com。主題就是一個簡單的常規資訊。最後使用send方法將郵件發送出去(不要忘記執行這個方法,否則郵件不會發送出去)。
在ASP中使用CDO發送郵件
CDO組件的功能相當強大!你可以使用它發送附件,發信給郵件清單,發送時間表(就象在Outlook中一樣)。
點擊這篇文章,可以看到如何通過私人Email進行行銷買賣。這篇文章詳細描述了更好使用CDO組件的問題。
下面來看看CDO組件的另外一些特徵,代碼片斷如下:
〈 %
objCDO.To = "someone@xyz.com (John Doe)"
objCDO.From = "me@abc.com (Jane Doe)"
objCDO.bcc = "janedoe@aol.com" ’Blind cc
objCDO.Subject = "My Resume, per Request"
objCDO.Body = "Hello John. Here is a copy of my resume"
objCDO.Importance = 2 ’High importance!
objCDO.AttachFile("\\server\jane\resume.doc","Resume.doc")
objCDO.Send ’Send off the email!
’Cleanup
Set objCDO = Nothing
% >
在ASP中使用CDO發送郵件
所你所見,這裡介紹了2個新的屬性和一個新的方法。Bcc屬性工作表示密送,這意味著在“To”處列表的人收到郵件後,看不到郵件發送到了“Bcc”處的人。同樣使用了Importance屬性,它有3個選項:
0 - Low
1 - Normal
2 - High
如果不特別設定,Importance屬性的預設值是1-Normal。在地址處,寫成了如下樣式
“emailaddress@something.com (Name)” ,其中括弧中的表示發送郵件人的名字。這樣,收到郵件的人John Doe將會看到郵件來自Jane Doe,而不是me@abc.com。
這裡使用的新的方法是AttachFile。正如方法的名字所示,它表示在要發送的郵件上附加一個檔案。它接受3個參數,但這裡只需要討論前2個。第1個參數表示附件的檔案,在這個例子中是\\server\jane\resume.doc;第2個參數是可選則的,表示附件在郵件中的命名,這裡是“Resume.doc”,但你可以選擇更好聽些的名字(比如叫做:“Jane’s Nifty Resume”)。
如果遇到拒絕訪問的錯誤 ...
根據Web伺服器上的安全設定不同,在執行send方法時,有可能遇到拒絕方法的錯誤。發生這個錯誤時,請檢查一下Windows Nt的使用者Iusr_MachineName是否對郵件根目錄(一般位於C:\InetPub\mailroot\)擁有“完全控制”的許可權。(比如說:Web伺服器的名字是Bob,那麼請檢查使用者Iusr_Bob是否擁有那個許可權)。