程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP用JMail、CDO發送郵件

ASP用JMail、CDO發送郵件

編輯:關於ASP編程
前一段時間有發過一個簡單的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       = "[email protected]"
  strFromer      = "[email protected]"
  strMailAddress = "mail.ubbcn.com"

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

%>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved