明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

ASP環(huán)境下郵件下文技巧的完成 (4)(推薦)

[摘要]最后要實現(xiàn)的功能是郵件的編輯和發(fā)送。這部分功能由Email_List.asp文件提供,其界面如圖6所示。接下來我們就來分析這個文件。    Email_List.asp的內部工作過程和edit_record.asp很類似。管理員在表單中寫作郵件并提交它,系統(tǒng)將選擇所有Mai...
     最后要實現(xiàn)的功能是郵件的編輯和發(fā)送。這部分功能由Email_List.asp文件提供,其界面如圖6所示。接下來我們就來分析這個文件。

   Email_List.asp的內部工作過程和edit_record.asp很類似。管理員在表單中寫作郵件并提交它,系統(tǒng)將選擇所有Mail_List字段值為“是”的記錄,然后將新郵件的拷貝發(fā)送給這些記錄中的Guest_Mail地址。

   每一次發(fā)送郵件我們都重新創(chuàng)建mailer對象,發(fā)送完成后關閉它。這一點非常重要,這是由于我們需要修改郵件的正文,加入取消訂閱郵件列表的URL和ID號。

 if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  strSubject = Request.Form("txtSubject")
  strBody = Request.Form("txtBody")
  strFrom = Request.Form("txtFrom")
  ' 從數(shù)據(jù)庫選取收件人記錄
  strSQL_SelectEmail = "SELECT Guests.Guest_ID, Guests.Guest_Email " & _
  " FROM Guests WHERE ((Guests.Mail_List)=-1);"
  Set oConn = Server.CreateObject("ADODB.Connection")
  oConn.Open strDSNPath
  Set rsMail = oConn.Execute(strSQL_SelectEmail)
  if rsMail.BOF = True and rsMail.EOF = True then
  ...數(shù)據(jù)庫為空提示,略...
  else
  rsMail.MoveFirst
  Do While Not rsMail.EOF
  ' 創(chuàng)建對象
  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  ' 填寫其它郵件標題信息
  Mailer.FromName = strFrom
  Mailer.FromAddress = strEmailFrom
  Mailer.RemoteHost = strHost
  Mailer.Subject = strSubject
  Mailer.BodyText = ...設置郵件內容,略...
  strTo = rsMail.Fields("Guest_Email").Value
  If strTo < > "" then
  Mailer.Recipient = strTo
  if Mailer.SendMail then
  ...發(fā)送成功提示,略...
  else
  ...發(fā)送失敗提示,略...
  end if 'Mailer.SendMail
  end if 'strTo < > ""
  rsMail.MoveNext
  Set Mailer = Nothing
  Loop
  end if 'rsMail.BOF = True and rsMail.EOF = True
  rsMail.Close
  Set rsMail = Nothing
  oConn.Close
  Set oConn = Nothing
 end if 'REQUEST_METHOD = "POST"

   這里需要注意的是,我們將變量strHost的值賦給ASPMail的實例對象的RemoteHost屬性。因此,必須保證strHost的值是一個合適的郵件服務器名字(如mail.mydomain.com)。