ASP用JMail、CDO發(fā)送郵件
更新時間:2006年07月14日 00:00:00 作者:
前一段時間有發(fā)過一個簡單的JMAIL郵件發(fā)郵件的代碼,今天就把這個代碼做一個具體的注解,并增加了另外兩個格式的代碼,并舉幾個簡單的例子:
首先是jmail.smtpmail的核心代碼:
程序代碼
<%
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ā)送郵件的服務器
jmail.AddRecipient Email '郵件的收件人
jmail.SenderName = "SenderName" '郵件發(fā)送者的姓名
jmail.Sender = "Email Address" '郵件發(fā)送者的郵件地址
jmail.Priority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內(nèi)容
jmail.AddRecipientBCC Email '密件收件人的地址
jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執(zhí)行郵件發(fā)送
jmail.Close '關(guān)閉郵件對象
%>
現(xiàn)在還有很多程序是使用這種方式來發(fā)信,這種方式有一個很大的缺陷,那就是發(fā)信是使用服務器本地smtp服務發(fā)出的,并沒有通過任何smtp身份驗證,
如果服務器設(shè)置了需要使用身份驗證,則發(fā)信會失敗?,F(xiàn)在因為反垃圾郵件的需要,越來越多的服務器開始注重這方面的設(shè)置問題,如果你使用此種方法發(fā)信突然出現(xiàn)不正常,
則可能是服務器限制了匿名發(fā)信,上面的代碼則就不會正常運作了。
這種方法我們不建議使用,但是現(xiàn)在還有很多asp程序使用此種方法,可能還是可以正常運作的,但是很難保證以后會一直正常,并且某些郵件服務器會拒收這種方法發(fā)出的信件,所以如果有可能的話,盡量不要使用這種方式。
w3 Jmail4.3組件重新設(shè)計了其內(nèi)部結(jié)構(gòu)——使用Message對象代替原來的單一對象Jmail.smtpmail發(fā)送郵件,有些方法需要身份驗證的(如163、yahoo等),可以用下面的方法解決:
程序代碼
<%
Set jmail = Server.CreateObject("JMAIL.Message") '建立發(fā)送郵件的對象
jmail.silent = true '屏蔽例外錯誤,返回FALSE跟TRUE兩值j
mail.logging = true '啟用郵件日志
jmail.Charset = "GB2312" '郵件的文字編碼為國標
jmail.ContentType = "text/html" '郵件的格式為HTML格式
jmail.AddRecipient Email '郵件收件人的地址
jmail.From = "Email From for Sender" '發(fā)件人的E-MAIL地址
jmail.MailServerUserName = "UserName of Email" '登錄郵件服務器所需的用戶名
jmail.MailServerPassword = "Password of Email" '登錄郵件服務器所需的密碼
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內(nèi)容
jmail.Prority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Send("Server Address") '執(zhí)行郵件發(fā)送(通過郵件服務器地址)
jmail.Close() '關(guān)閉對象
%>
使用這段代碼發(fā)信,是當前最為穩(wěn)定,也最為適用的發(fā)信方法,我們推薦使用Jmail發(fā)信的客戶,使用此種方法來發(fā)信。
再講一下 微軟自帶的CDONTS組件的發(fā)信的方法:
程序代碼
<%
Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立郵件對象
cdomail.Subject = "Mail Subject" '郵件標題
cdomail.From = "Sender's Mail" '發(fā)件人的地址
cdomail.To = "Email will from" '收件人的地址
cdomail.Body = "Mail Body" '郵件的內(nèi)容
cdomail.Send '執(zhí)行發(fā)送
%>
我們寫程序,一般情況下都是說要代碼模塊化,這樣方便維護,同時也方便移植。因此,我在這里將這個發(fā)郵件的寫成一個子程,在調(diào)用的時候可以直接調(diào)用(當然,如果你高興寫成函數(shù)的話也是可以的,這個主要是看個人興趣):
推薦
首先是jmail.smtpmail的核心代碼:
程序代碼
<%
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ā)送郵件的服務器
jmail.AddRecipient Email '郵件的收件人
jmail.SenderName = "SenderName" '郵件發(fā)送者的姓名
jmail.Sender = "Email Address" '郵件發(fā)送者的郵件地址
jmail.Priority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內(nèi)容
jmail.AddRecipientBCC Email '密件收件人的地址
jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執(zhí)行郵件發(fā)送
jmail.Close '關(guān)閉郵件對象
%>
現(xiàn)在還有很多程序是使用這種方式來發(fā)信,這種方式有一個很大的缺陷,那就是發(fā)信是使用服務器本地smtp服務發(fā)出的,并沒有通過任何smtp身份驗證,
如果服務器設(shè)置了需要使用身份驗證,則發(fā)信會失敗?,F(xiàn)在因為反垃圾郵件的需要,越來越多的服務器開始注重這方面的設(shè)置問題,如果你使用此種方法發(fā)信突然出現(xiàn)不正常,
則可能是服務器限制了匿名發(fā)信,上面的代碼則就不會正常運作了。
這種方法我們不建議使用,但是現(xiàn)在還有很多asp程序使用此種方法,可能還是可以正常運作的,但是很難保證以后會一直正常,并且某些郵件服務器會拒收這種方法發(fā)出的信件,所以如果有可能的話,盡量不要使用這種方式。
w3 Jmail4.3組件重新設(shè)計了其內(nèi)部結(jié)構(gòu)——使用Message對象代替原來的單一對象Jmail.smtpmail發(fā)送郵件,有些方法需要身份驗證的(如163、yahoo等),可以用下面的方法解決:
程序代碼
<%
Set jmail = Server.CreateObject("JMAIL.Message") '建立發(fā)送郵件的對象
jmail.silent = true '屏蔽例外錯誤,返回FALSE跟TRUE兩值j
mail.logging = true '啟用郵件日志
jmail.Charset = "GB2312" '郵件的文字編碼為國標
jmail.ContentType = "text/html" '郵件的格式為HTML格式
jmail.AddRecipient Email '郵件收件人的地址
jmail.From = "Email From for Sender" '發(fā)件人的E-MAIL地址
jmail.MailServerUserName = "UserName of Email" '登錄郵件服務器所需的用戶名
jmail.MailServerPassword = "Password of Email" '登錄郵件服務器所需的密碼
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內(nèi)容
jmail.Prority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Send("Server Address") '執(zhí)行郵件發(fā)送(通過郵件服務器地址)
jmail.Close() '關(guān)閉對象
%>
使用這段代碼發(fā)信,是當前最為穩(wěn)定,也最為適用的發(fā)信方法,我們推薦使用Jmail發(fā)信的客戶,使用此種方法來發(fā)信。
再講一下 微軟自帶的CDONTS組件的發(fā)信的方法:
程序代碼
<%
Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立郵件對象
cdomail.Subject = "Mail Subject" '郵件標題
cdomail.From = "Sender's Mail" '發(fā)件人的地址
cdomail.To = "Email will from" '收件人的地址
cdomail.Body = "Mail Body" '郵件的內(nèi)容
cdomail.Send '執(zhí)行發(fā)送
%>
我們寫程序,一般情況下都是說要代碼模塊化,這樣方便維護,同時也方便移植。因此,我在這里將這個發(fā)郵件的寫成一個子程,在調(diào)用的時候可以直接調(diào)用(當然,如果你高興寫成函數(shù)的話也是可以的,這個主要是看個人興趣):
推薦

復制代碼 代碼如下:
<%
'參數(shù)說明
'Subject : 郵件標題
'MailAddress : 發(fā)件服務器的地址,如smtp.163.com
'Email : 收件人郵件地址
'Sender : 發(fā)件人姓名
'Content : 郵件內(nèi)容
'Fromer : 發(fā)件人的郵件地址
Sub SendAction(subject, mailaddress, email, sender, content, fromer)
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 = mailaddress '發(fā)送郵件的服務器
jmail.AddRecipient Email '郵件的收件人
jmail.SenderName = sender '郵件發(fā)送者的姓名
jmail.Sender = fromer '郵件發(fā)送者的郵件地址
jmail.Priority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Subject = subject '郵件的標題
jmail.Body = content '郵件的內(nèi)容
'由于沒有用到密抄跟抄送,這里屏蔽掉這兩句,如果您有需要的話,可以在這里恢復
'jmail.AddRecipientBCC Email '密件收件人的地址
'jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執(zhí)行郵件發(fā)送
jmail.Close '關(guān)閉郵件對象
End Sub
'調(diào)用此Sub的例子
Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
strSubject = "這是一封用JMAIL發(fā)送的測試郵件"
strContent = "JMail組件發(fā)送測試成功!"
strEmail = "runbing@eyou.com"
strFromer = "runbing@eyou.com"
strMailAddress = "mail.ubbcn.com"
Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>
'參數(shù)說明
'Subject : 郵件標題
'MailAddress : 發(fā)件服務器的地址,如smtp.163.com
'Email : 收件人郵件地址
'Sender : 發(fā)件人姓名
'Content : 郵件內(nèi)容
'Fromer : 發(fā)件人的郵件地址
Sub SendAction(subject, mailaddress, email, sender, content, fromer)
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 = mailaddress '發(fā)送郵件的服務器
jmail.AddRecipient Email '郵件的收件人
jmail.SenderName = sender '郵件發(fā)送者的姓名
jmail.Sender = fromer '郵件發(fā)送者的郵件地址
jmail.Priority = 1 '郵件的緊急程序,1 為最快,5 為最慢, 3 為默認值
jmail.Subject = subject '郵件的標題
jmail.Body = content '郵件的內(nèi)容
'由于沒有用到密抄跟抄送,這里屏蔽掉這兩句,如果您有需要的話,可以在這里恢復
'jmail.AddRecipientBCC Email '密件收件人的地址
'jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執(zhí)行郵件發(fā)送
jmail.Close '關(guān)閉郵件對象
End Sub
'調(diào)用此Sub的例子
Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
strSubject = "這是一封用JMAIL發(fā)送的測試郵件"
strContent = "JMail組件發(fā)送測試成功!"
strEmail = "runbing@eyou.com"
strFromer = "runbing@eyou.com"
strMailAddress = "mail.ubbcn.com"
Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)
%>
相關(guān)文章
不能使用“;文件已在使用中 Microsoft JET Database Engine
不能使用 '';文件已在使用中。說明: 執(zhí)行當前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導致錯誤的出處的詳細信息2012-06-06JScript中遍歷Request表單參數(shù)集合的方法
這篇文章主要介紹了JScript中遍歷Request表單參數(shù)集合的方法,本文以遍歷Request.QueryString集合為例給出了實現(xiàn)代碼,需要的朋友可以參考下2015-03-03ASP的Server.MapPath()不同參數(shù)返回路徑總結(jié)
這篇文章主要介紹了ASP的Server.MapPath()不同參數(shù)返回路徑總結(jié),也就是在Server.MapPath()中填入絕對路徑、相對路徑等情況的返回值總結(jié),需要的朋友可以參考下2014-07-07