<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      完成ASP文件在線發郵件

      [摘要]筆者在實踐中利用ASP的COM組件功能,在VB中實現了一個發郵件的小組件,在ASP中只通過輕松調用,就可以實現該功能。所有郵件處理機制都被封裝在這個組件中,使用起來極為方便。下面將詳細介紹該組件的基本開發原理以及在ASP中的應用。   1. 利用Winsock控件與發送郵件的SMTP聯系   和S...
      筆者在實踐中利用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://flyfly.533.net的軟件編程欄目上下載。




      日韩精品一区二区三区高清