• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 簡單快捷實現ASP在線發郵件

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    在編寫網上應用程序時,經常碰到需要在線發送郵件的問題,郵件內容是由程序動態決定的,如果你采用的是ASP方式來編寫網上應用程序,如何簡單、快捷地實現這一功能呢? 筆者在實踐中利用ASP的com組件功能,在 vb 中實現了一個發郵件的小組件,在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頁面。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>