ASP用JMail、CDO發送郵件

來源:互聯網
上載者:User

前一段時間有發過一個簡單的JMAIL郵件發郵件的代碼,今天就把這個代碼做一個具體的註解,並增加了另外兩個格式的代碼,並舉幾個簡單的例子:
首先是jmail.smtpmail的核心代碼:
程式碼

<%
Set jmail = Server.CreateObject("JMAIL.SMTPMail") '建立一個JMAIL對象
jmail.silent = true 'JMAIL不會拋出例外錯誤,返回的值為FALSE跟TRUE
jmail.logging = true '啟用使用日誌
jmail.Charset = "GB2312" '郵件文字的代碼為簡體中文
jmail.ContentType = "text/html" '郵件的格式為HTML的
jmail.ServerAddress = "Server Address" '發送郵件的伺服器
jmail.AddRecipient Email '郵件的收件者
jmail.SenderName = "SenderName" '郵件寄件者的姓名
jmail.Sender = "Email Address" '郵件寄件者的郵件地址
jmail.Priority = 1 '郵件的緊急程式,1 為最快,5 為最慢, 3 為預設值
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內容
jmail.AddRecipientBCC Email '密件收件者的地址
jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執行郵件發送
jmail.Close '關閉郵件對象
%>

現在還有很多程式是使用這種方式來發信,這種方式有一個很大的缺陷,那就是發信是使用伺服器本地smtp服務發出的,並沒有通過任何smtp身分識別驗證,
如果伺服器設定了需要使用身分識別驗證,則發信會失敗。現在因為反垃圾郵件的需要,越來越多的伺服器開始注重這方面的設定問題,如果你使用此種方法發信突然出現不正常,
則可能是伺服器限制了匿名發信,上面的代碼則就不會正常運作了。

這種方法我們不建議使用,但是現在還有很多asp程式使用此種方法,可能還是可以正常運作的,但是很難保證以後會一直正常,並且某些郵件伺服器會拒收這種方法發出的信件,所以如果有可能的話,盡量不要使用這種方式。

w3 Jmail4.3組件重新設計了其內部結構——使用Message對象代替原來的單一對象Jmail.smtpmail發送郵件,有些方法需要身分識別驗證的(如163、yahoo等),可以用下面的方法解決:
程式碼

<%
Set jmail = Server.CreateObject("JMAIL.Message") '建立發送郵件的對象
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" '寄件者的E-MAIL地址
jmail.MailServerUserName = "UserName of Email" '登入郵件伺服器所需的使用者名稱
jmail.MailServerPassword = "Password of Email" '登入郵件伺服器所需的密碼
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內容
jmail.Prority = 1 '郵件的緊急程式,1 為最快,5 為最慢, 3 為預設值
jmail.Send("Server Address") '執行郵件發送(通過郵件伺服器地址)
jmail.Close() '關閉對象
%>

使用這段代碼發信,是當前最為穩定,也最為適用的發信方法,我們推薦使用Jmail發信的客戶,使用此種方法來發信。

再講一下 微軟內建的CDONTS組件的發信的方法:
程式碼

<%
Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立郵件對象
cdomail.Subject = "Mail Subject" '郵件標題
cdomail.From = "Sender's Mail" '寄件者的地址
cdomail.To = "Email will from" '收件者的地址
cdomail.Body = "Mail Body" '郵件的內容
cdomail.Send '執行發送
%>

我們寫程式,一般情況下都是說要代碼模組化,這樣方便維護,同時也方便移植。因此,我在這裡將這個發郵件的寫成一個子程,在調用的時候可以直接調用(當然,如果你高興寫成函數的話也是可以的,這個主要是看個人興趣):
推薦複製代碼 代碼如下:<%
'參數說明
'Subject : 郵件標題
'MailAddress : 發件伺服器的地址,如smtp.163.com
'Email : 收件者郵件地址
'Sender : 寄件者姓名
'Content : 郵件內容
'Fromer : 寄件者的郵件地址

Sub SendAction(subject, mailaddress, email, sender, content, fromer)
Set jmail = Server.CreateObject("JMAIL.SMTPMail") '建立一個JMAIL對象
jmail.silent = true 'JMAIL不會拋出例外錯誤,返回的值為FALSE跟TRUE
jmail.logging = true '啟用使用日誌
jmail.Charset = "GB2312" '郵件文字的代碼為簡體中文
jmail.ContentType = "text/html" '郵件的格式為HTML的
jmail.ServerAddress = mailaddress '發送郵件的伺服器
jmail.AddRecipient Email '郵件的收件者
jmail.SenderName = sender '郵件寄件者的姓名
jmail.Sender = fromer '郵件寄件者的郵件地址
jmail.Priority = 1 '郵件的緊急程式,1 為最快,5 為最慢, 3 為預設值
jmail.Subject = subject '郵件的標題
jmail.Body = content '郵件的內容
'由於沒有用到密抄跟抄送,這裡屏蔽掉這兩句,如果您有需要的話,可以在這裡恢複
'jmail.AddRecipientBCC Email '密件收件者的地址
'jmail.AddRecipientCC Email '郵件抄送者的地址
jmail.Execute() '執行郵件發送
jmail.Close '關閉郵件對象
End Sub

'調用此Sub的例子
Dim strSubject,strEmail,strMailAdress,strSender,strContent,strFromer
strSubject = "這是一封用JMAIL發送的測試郵件"
strContent = "JMail組件發送測試成功!"
strEmail = "runbing@eyou.com"
strFromer = "runbing@eyou.com"
strMailAddress = "mail.ubbcn.com"

Call SendAction (strSubject,strMailaddress,strEmail,strSender,strContent,strFromer)

%>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.