文谷首页 | 业界传真 | 网络技术 | 服务器 | 数据库 | 存储技术 | 系统安全 | 无线技术 | Cisco | .Net | Windows | Linux | Unix | Java
电子商务 | 网站工程 | 网页设计 | 平面设计 | 多媒体 | 编程语言 | Oracle | MSSQL | Photoshop | ASP | PHP | 实用技巧 | 进程查询 | 文谷论坛
ASP频道
没有任何子栏目
您现在的位置: IT文谷 >> 网站工程 >> 网页编程 >> ASP >> 文章正文
实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件
实现ASP文件在线发邮件
实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件
实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件
 在编写网上应用程序时,笔者经常碰到需要在线发送邮件的问题,邮件内容是由程序动态决定的,如果你采用的是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页面。
实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件
  • 上一篇文章:

  • 下一篇文章:
  • 进入论坛讨论

    相关文章
    Request.ServerVariables的值与防盗链
    ASP正则表达式详解
    ASP.NET的ACCESS数据库操作类
    ASP.NET中的窗体身份验证
    ASP.NET中的Windows身份验证
    将Asp.net页面输出为HTML
    log4net配置成可log到ms sql
    解决ASP.NET网页出现的乱码问题
    技术应用-asp.net加密方法
    ASP.NET 中字符的格式化输出
    .NET中获取电脑名、IP及用户名方法
    ASP.NET数据库编程之处理文件访问许可
    热门文章最新推荐

    版权与免责声明:
    ① 本网转载其他媒体稿件是为传播更多的信息,此类稿件不代表本网观点,版权归原作者所有,本网不承担此类稿件侵权行为的连带责任。
    ② 本站原创文章,转载时请注明出自文谷及作者姓名
    ③在本网BBS上发表言论者,文责自负。
    ④如您因版权等问题需要与本网联络,请在30日内联系 。
    实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件
    实现ASP文件在线发邮件实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件2006-4-10 22:54:11实现ASP文件在线发邮件

    全站热点
    最新推荐
    关于文谷 | 联系文谷 | 免责声明 | 文谷论坛
    Tel: 0577-65690019      E-mail: ichenjian@gmail.com    MSN:ichenjian@hotmail.com    QQ:2911194
    Copyright © 2004-2008 wengu.com 文谷 All Rights Reserved
    浙ICP备05000327号