加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP网上发送邮件的功能简便快捷地实现了

发布时间:2023-07-06 14:06:38 所属栏目:Asp教程 来源:
导读:在编写网上应用程序时,经常碰到需要在线发送邮件的问题,邮件内容是由程序动态决定的,如果你采用的是ASP方式来编写网上应用程序,如何简单、快捷地实现这一功能呢?

  笔者在实践中利用ASP的com组件功能,在v
在编写网上应用程序时,经常碰到需要在线发送邮件的问题,邮件内容是由程序动态决定的,如果你采用的是ASP方式来编写网上应用程序,如何简单、快捷地实现这一功能呢?
 
  笔者在实践中利用ASP的com组件功能,在vb中实现了一个发邮件的小组件,在ASP中只通过轻松调用,就可以实现该功能。所有邮件处理机制都被封装在这个组件中,使用起来极为方便。下面将详细介绍该组件的基本开发原理以及在ASP中的应用。
 
  1. 利用Winsock控件与发送邮件的smtp联系
 
  和smtp的联系包括握手、发送数据以及关闭等全过程,主要程序如下:
 
  建立一个frmsendmail 的窗体,其中包含一个winsock控件,有以下几个公共变量:
 
  public mstmp as string
 
  //发送邮件的stmp
 
  public mfrom as string
 
  //from 地址
 
  public mto as string
 
  //到达地址
 
  public msubject as string
 
  //邮件主题
 
  public mtext as string
 
  //邮件正文
 
  sock.connect mstmp, 25
 
  //和发送邮件的stmp建立联系
 
  private sub sock_connect()
 
  sflag = sfconn
 
  //连接成功后设置参数
 
  end sub
 
  private sub sock_dataarrival(byval bytestotal as long)
 
  on error goto daerr
 
  dim s as string
 
  sock.getdata s
 
  select case sflag
 
  case sfstart
 
  case sfconn
 
  sflag = sfhelo
 
  //发出握手信息hello
 
  send "helo " && mmyname
 
  case sfhelo
 
  sflag = sffrom
 
  send "mail from:" && getreal(mfrom)
 
  case sffrom
 
  if left(s, 3) 〈〉 "250" then goto srverr
 
  //如果成功发送接收邮件地址
 
  sflag = sfrcpt
 
  send "rcpt to:" && getreal(mto)
 
  case sfrcpt
 
  if left(s, 3) 〈〉 "250" then goto srverr
 
  //如果成功开始发送数据
 
  sflag = sfdata
 
  send "data"
 
  case sfdata
 
  if left(s, 3) 〈〉 "354" then goto srverr
 
  sflag = sfsendover //数据包括4项,最后以 . 结束
 
  send "from: " && mfrom
 
  send "to: " && mto
 
  send "subject: " && msubject && vbcrlf
 
  send mtext
 
  send "."
 
  case sfsendover
 
  if left(s, 3) 〈〉 "250" then goto srverr
 
  sflag = sfstart
 
  sendok = true
 
  send "quit"
 
  end select
 
  exit sub
 
  end sub
 
  2. 将上述功能封装在一个类中
 
  由于ASP能使用的组件中不能存在控件,所以要通过类模块来封装上述窗体。首先在类初始化时建立一窗体:
 
  private sub class_initialize()
 
  set frm = new frmsendmail
 
  end sub
 
  把窗体的公共变量作为属性封装在类模块中。
 
  该窗体的函数接口为:
 
  public sub send()
 
  frm.sendstart
 
  end sub
 
  3. 注册该组件
 
  将上述工程编译成dll文件,通过vb注册或手工注册都可以。
 
  4. 在ASP中的应用
 
  调用方法如下:
 
  set smail=server.createobject("sendmailx.mail")
 
  smail.stmp="166.166.1.1"
 
  smail.logfile="e:/logs/mail.log"
 
  smail.mfrom = mfromname && " 〈" && mfromaddr && "〉"
 
  smail.mto = mtoname && " 〈" && mtoaddr && "〉"
 
  smail.msubject = msubject
 
  smail.mtext = mtext
 
  smail.send
 
  其中变量可以通过赋值,也可以来自上一个request页面。  
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章