ASP環(huán)境下郵件下文技巧的完成 (4)(推薦)
發(fā)表時間:2024-06-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]最后要實現(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)。