ASP环境下邮件列表功能的实现 (四)
程序员文章站
2022-05-27 08:12:02
最后要实现的功能是邮件的编辑和发送。这部分功能由email_list.文件提供,其界面如图6所示。接下来我们就来分析这个文件。 email_list.asp的内部工作过程和e...
最后要实现的功能是邮件的编辑和发送。这部分功能由email_list.文件提供,其界面如图6所示。接下来我们就来分析这个文件。
email_list.asp的内部工作过程和edit_record.asp很类似。管理员在表单中写作邮件并提交它,将选择所有mail_list字段值为“是”的记录,然后将新邮件的拷贝发送给这些记录中的guest_mail地址。
每一次发送邮件我们都重新创建mailer对象,发送完成后关闭它。这一点非常重要,这是由于我们需要修改邮件的正文,加入取消订阅邮件列表的url和id号。
if request.servervariables("request_method") = "post" then
strsubject = request.form("txtsubject")
strbody = request.form("txtbody")
strfrom = request.form("txtfrom")
从选取收件人记录
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
...数据库为空提示,略...
else
rsmail.movefirst
do while not rsmail.eof
创建对象
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
...发送成功提示,略...
else
...发送失败提示,略...
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)。
email_list.asp的内部工作过程和edit_record.asp很类似。管理员在表单中写作邮件并提交它,将选择所有mail_list字段值为“是”的记录,然后将新邮件的拷贝发送给这些记录中的guest_mail地址。
每一次发送邮件我们都重新创建mailer对象,发送完成后关闭它。这一点非常重要,这是由于我们需要修改邮件的正文,加入取消订阅邮件列表的url和id号。
if request.servervariables("request_method") = "post" then
strsubject = request.form("txtsubject")
strbody = request.form("txtbody")
strfrom = request.form("txtfrom")
从选取收件人记录
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
...数据库为空提示,略...
else
rsmail.movefirst
do while not rsmail.eof
创建对象
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
...发送成功提示,略...
else
...发送失败提示,略...
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)。