欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP环境下邮件列表功能的实现 (四)

程序员文章站 2023-01-23 22:34:24
最后要实现的功能是邮件的编辑和发送。这部分功能由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)。