熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

用VB設計自己的E-mail系統

2013-11-13 09:57:15  來源: .NET編程 

  Visual Basic 以其強大的功能為廣大軟件開發人員所喜愛隨著Internet的迅猛發展VB應用在網絡方面的開發也越來越多本文將介紹如何用VB設計一個自己的Email系統

  檢查是否連通Internet

  在設計自己的Email系統時我們需要檢測系統是否連通Internet下文通過編寫函數IsConnected來判斷Internet是否連通

  在主程序中加入下列代碼

  Private Sub Form_Load()

  If IsConnected = True Then

  MsgBox (您已經連通了Internet!

  End If

  If IsConnected = False Then

  MsgBox (您還沒有連通 Internet!

  End If

  End Sub

  將下面的代碼作為模塊放在程序中

  Option Explicit

  /有關注冊的API聲明和定義以便使用/

  Public Declare Function RasEnumConnections Lib RasApidll Alias RasEnumConnectionsA (lpRasCon As Any lpcb As Long lpcConnections As Long) As Long

  Public Declare Function RasGetConnectStatus Lib RasApidll Alias RasGetConnectStatusA (ByVal hRasCon As Long lpStatus As Any) As Long

  /常數和變量的設定/

  Public Const RAS_MaxEntryName =

  Public Const RAS_MaxDeviceType =

  Public Const RAS_MaxDeviceName =

  Public Type RASCONN

  dwSize As Long

  hRasCon As Long

  szEntryName(RAS_MaxEntryName) As Byte

  szDeviceType(RAS_MaxDeviceType) As Byte

  szDeviceName(RAS_MaxDeviceName) As Byte

  End Type

  Public Type RASCONNSTATUS

  dwSize As Long

  RasConnState As Long

  dwError As Long

  szDeviceType(RAS_MaxDeviceType) As Byte

  szDeviceName(RAS_MaxDeviceName) As Byte

  End Type

  /函數IsConnected返回是否連通的狀態如果為True則表示已連通/

  Public Function IsConnected() As Boolean

  Dim TRasCon() As RASCONN

  Dim lg As Long

  Dim lpcon As Long

  Dim RetVal As Long

  Dim Tstatus As RASCONNSTATUS

  TRasCon(dwSize =

  lg =  TRasCon(dwSize

  RetVal = RasEnumConnections(TRasCon( lg lpcon)

  If RetVal <> Then

  MsgBox 錯誤

  Exit Function

  End If

  TstatusdwSize =

  RetVal = RasGetConnectStatus(TRasCon(hRasCon Tstatus)

  If TstatusRasConnState = &&H Then

  IsConnected = True

  Else

  IsConnected = False

  End If

  End Function

  通過使用上面代碼我們可以很方便地了解目前的Internet是否處於連通狀態

  設計接收郵件

  在VB選單上點擊工程→部件彈出部件對話框在對話框的控件卡中選中Microsoft MAPI Controls 控件點擊確定按鈕使得工具箱上增加MAPIMessage和MAPISession兩個圖標

  在Form上加入一個MAPIMessage控件取名為MAPIMeaasge;加入一個MAPISession控件取名為MAPISession;再加入三個Textbox控件分別取名為SubjectContent和Indexno 將它們的Caption分別改為郵件標題郵件內容和郵件索引號並在TextBox前各加入一個Label控件將Caption分別改為標題內容和索引號

  將MAPIMessage的各項屬性設置如下

  DownLoadMail=TRUE

  LogonUI=TRUE

  NewSession=FALSE

  UserName=接收Email

  在Form上加入一個按鈕(Getmail)將其Caption屬性改為接收郵件

  在 Getmail_Click()中加入以下程序代碼程序的功能是使我們接收Email:

  MAPIMessageFetch

  FormCaption=MAPIMessageMsgCount

  MAPIMessageMsgIndex=CINT(Indexnotext)

  SubjecText = MAPIMessageMsgNoteText

  ContentText = MAPIMessageMsgSubject

  其中Fetch命令是將信件抓到系統存貯器的inbuffer中我們將信件抓回來後可以由MsgCount屬性知道信件數量接著可以用MsgIndex設置要看哪一封信件的內容標題

  設計發送郵件

  設計發送郵件部分時我們需要分兩步加以完成

  Exchange各項參數的設置

  進入Exchange系統選擇新增設置文件屏幕上會顯示所需要的信息服務選擇Internet Mail

  設置文件的名稱為test屏幕會顯示兩個選項可以選擇以Modem方式或以Network方式連接筆者所用的是Modem方式所以選擇Modem

  選擇Modem後Exchange會要求我們輸入Mail server的IP address在此輸入自己的IP地址接著將Transform Message的模式設置為Automatic這樣當我們連接到Mail服務器時新的信息會自動下載到Local端接下來將你所使用的Email地址全名口令和下載路徑等一步步設置好這樣就完成了Exchange各項參數的設置

  程序設計

  在VB選單上點擊工程→部件彈出部件對話框在對話框的控件卡中選中Microsoft MAPI Controls 控件點擊確定按鈕

  在Form上加入一個MAPIMessage控件取名為MAPIMessage再加入一個MAPISession控件取名為MAPISession然後加入三個textbox控件取名為SubjectContent和Addr並在三個textbox前各加入一個Label最後將Caption分別改為標題內容和地址

  將MAPIMessage的各項屬性設置如下

  DownLoadMail=TRUE

  LogonUI=TRUE

  NewSession=FALSE

  UserName=發送Email

  這裡將DownLoadMail設置為TRUE當程序和Mail服務器第一次連接時會將新的Mail下載到Local端將LogonUI設置為TRUE則當程序中Logon名稱輸入錯誤時系統會顯示一個Message Box來讓你輸入正確的名稱由於這個程序僅使用到一條Session所以將NewSession設置成FALSE如果有許多Session要建立的話則將它設置成TRUEUserName中所填的是我們在Exchange中所新增的設置文件名稱如果沒有填內容的話系統將會顯示一些Message Box讓你輸入文件

  在Form上加入三個按鈕LogonLogoff和Send並分別將它們的Caption改為登錄離網和發送

  在 Logon_Click()中加入以下程序代碼程序的功能是使我們登錄到Mail服務器

  MAPISessionSignOn

  MAPIMessageSessionID = MAPISessionSessionID

  MsgBox Your Id is + Str(MAPISessionSessionID)

  其中MAPISessionSignOn是做登錄的動作在登錄時因為已經將MAPIMessage控件的DownLoadMail屬性設置為TRUE所以可以在屏幕上看到Message Box顯示系統正在下載Mail登錄成功後系統會傳回一個SessionID將該ID填入MAPIMessage的SessionID中這樣就可以利用這條Session來傳送Email

  在Logoff_Click()中加入以下程序代碼程序的功能是使我們離開Mail服務器

  MAPISSignOff

  在Send_Click()中加入以下程序代碼程序的功能是使我們發送Email:

  MAPIMessageCompose

  MAPIMessageRecipDisplayName = Addrtext

  MAPIMessageAddressResolveUI = True

  MAPIMessageMsgSubject = Subjecttext

  MAPIMessageMsgNoteText = Contenttext

  MAPIMessageSend

  MsgBox 您發送成功啦!

  其中Compose命令的目的是使你可以改變RecipDisplayName的內容將所需傳送的Email地址主題和文章內容分別填入RecipDisplayNameMsgSubject和MsgNoteText接著用Send命令發送

  用IE Mail程序測試

  執行上面設計的Send程序在標題文本框中填入發信測試源碼天空在地址文本框中填入收信人的Email地址在內容文本框中輸入要傳送的內容這樣信件就發送出去了


From:http://tw.wingwit.com/Article/program/net/201311/12103.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.