ASP程序發(fā)送信件的幾種方法比較
一、Jmail3以及以前的版本使用jmail.smtpmail發(fā)信,具體代碼如下:
<% Set jmail = Server.CreateObject("JMAIL.SMTPMail") '創(chuàng)建一個JMAIL對象 jmail.silent = true 'JMAIL不會拋出例外錯誤,返回的值為FALSE跟TRUE jmail.logging = true '啟用使用日志 jmail.Charset = "GB2312" '郵件文字的代碼為簡體中文 jmail.ContentType = "text/html" '郵件的格式為HTML的 jmail.ServerAddress = "Server Address" '發(fā)送郵件的服務(wù)器 jmail.AddRecipient Email '郵件的收件人 jmail.SenderName = "SenderName" '郵件發(fā)送者的姓名 jmail.Sender = "Email Address" '郵件發(fā)送者的郵件地址 jmail.Priority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認(rèn)值 jmail.Subject = "Mail Subject" '郵件的標(biāo)題 jmail.Body = "Mail Body" '郵件的內(nèi)容 jmail.AddRecipientBCC Email '密件收件人的地址 jmail.AddRecipientCC Email '郵件抄送者的地址 jmail.Execute() '執(zhí)行郵件發(fā)送 jmail.Close '關(guān)閉郵件對象 %> 現(xiàn)在還有很多程序是使用這種方式來發(fā)信,這種方式有一個很大的缺陷,那就是發(fā)信是使用服務(wù)器本地smtp服務(wù)發(fā)出的,并沒有通過任何smtp身份驗(yàn)證, 如果服務(wù)器設(shè)置了需要使用身份驗(yàn)證,則發(fā)信會失敗。現(xiàn)在因?yàn)榉蠢]件的需要,越來越多的服務(wù)器開始注重這方面的設(shè)置問題,如果你使用此種方法發(fā)信突然出現(xiàn)不正常, 則可能是服務(wù)器限制了匿名發(fā)信,上面的代碼則就不會正常運(yùn)作了。
這種方法我們不建議使用,但是現(xiàn)在還有很多asp程序使用此種方法,可能還是可以正常運(yùn)作的,但是很難保證以后會一直正常,并且某些郵件服務(wù)器會拒收這種方法發(fā)出的信件,所以如果有可能的話,盡量不要使用這種方式。
二、 再講一下微軟自帶的CDONTS組件的發(fā)信的方法:
<% Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立郵件對象 cdomail.Subject = "Mail Subject" '郵件標(biāo)題 cdomail.From = "Sender's Mail" '發(fā)件人的地址 cdomail.To = "Email will from" '收件人的地址 cdomail.Body = "Mail Body" '郵件的內(nèi)容 cdomail.Send '執(zhí)行發(fā)送 %>
這種方法發(fā)送郵件是最簡單的,同時也帶來一定的問題,就是很少有服務(wù)器會開這項(xiàng)服務(wù),即使開通,也因?yàn)闆]有身份驗(yàn)證信息,發(fā)出的信件會被很多服務(wù)器所拒收,強(qiáng)烈建議不使用。
三、 w3 Jmail4.3組件重新設(shè)計了其內(nèi)部結(jié)構(gòu)——使用Message對象代替原來的單一對象Jmail.smtpmail發(fā)送郵件,并且增加了需要身份驗(yàn)證的設(shè)置,同時對象的屬性也比以前有很大改變,導(dǎo)致程序需要完全重寫, 新版的發(fā)信范例如下所示: <% Set jmail = Server.CreateObject("JMAIL.Message") '建立發(fā)送郵件的對象 jmail.silent = true '屏蔽例外錯誤,返回FALSE跟TRUE兩值j Jmail.logging = true '啟用郵件日志 jmail.Charset = "GB2312" '郵件的文字編碼為國標(biāo) jmail.ContentType = "text/html" '郵件的格式為HTML格式 jmail.AddRecipient Email '郵件收件人的地址 jmail.From = "Email From for Sender" '發(fā)件人的E-MAIL地址 jmail.MailServerUserName = "UserName of Email" '登錄郵件服務(wù)器所需的用戶名 jmail.MailServerPassword = "Password of Email" '登錄郵件服務(wù)器所需的密碼 jmail.Subject = "Mail Subject" '郵件的標(biāo)題 jmail.Body = "Mail Body" '郵件的內(nèi)容 jmail.Send("Server Address") '執(zhí)行郵件發(fā)送(通過郵件服務(wù)器地址) jmail.Close() '關(guān)閉對象 %>
使用這段代碼發(fā)信,是當(dāng)前最為穩(wěn)定,也最為適用的發(fā)信方法,我們推薦使用Jmail發(fā)信的客戶,使用此種方法來發(fā)信。
|