• <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-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 12次 | 進入軟件測試論壇討論

    領測軟件測試網

     在編寫網上應用程序時,經常碰到需要在線發送郵件的問題,郵件內容是由程序動態決定的,如果你采用的是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/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>