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.