用VB5.0设计E-Mail程序

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 showman 的 blog

用vb5.0设计e-mail程序

前言

随着计算机网络的发展,人与人之间信息传输的时间大为缩短。许多文件都是以电子邮件的形式来传送;通常使用过计算机的人,或多或少都会用到e-mail来传输信息。本文将介绍如何用microsoft mapi (messaging application program interface)来设计mail程序。首先用visual basic所提供的mapisession control及mapimessage control 来设计mail收发程序,然后用microsoft internet explorer 3.0所提供的e-mail程序来测试程序设计的正确性

mapi简介

mapi接口是由微软公司提供的一系列供使用者开发mail、scheduling、bulletin board、communication程序的编程接口。在使用mapi设计程序时,首先必须在程序和mapi之间建立一条或数条session;当session建立好之后,client端程序就可以使用mapi所提供的功能。

mapi的功能主要分成三大部分:address books、transport和message store。address books主要负责设置e-mail type、protocol等参数;transport负责文件的发送和接收等功能;message store则负责发送接收等信息的处理。

说了这么多,mapi接口好像很可怕。不过没关系,visual basic所提供的mapisession control及mapimessage control,已经将许多复杂的部分包装成简单 的property和功能,我们只需要对property及功能作一些简单的设置,就可以写一个mail发送和接收的程序。

以下笔者将用visual basic的mapi
control,来设计mail传送和接收的程序。

e-mail发送部分

step 1:设置exchange各项参数

进入exchange系统,选择新增设置文件;屏幕上会显示所需要的信息服务,选择 internet mail。

将设置文件的名称设为test。屏幕会显示两个选项,您可以选择以modem方式,或以network方式连接。笔者所用的是internet专线,所以选择network;假若您是使用 ppp拨号方式连接internet,就要选择modem。

选择network后,exchange会要求我们输入mail server的ip address。笔者现在所使用的 mail server地址是202.96.128.111,在本程序中便将它设置为该地址。

接着将transform message的模式设置为automatic,这样当我们连接到mail server
时,新的信息会自动download到local端。

接下来,将您所使用的email address、full name、password、download path一步
一步设置好,这样就完成了exchange各项参数的设置。

step 2:程序设计

在file选项中选择new
project建立一个新的工程,这时屏幕上会看到许多选项,例如activex document.exe、activex document.dll、activex.exe、activex control等...,这时要选standard.exe。

在project下,选择property属性选项;在general选项下,将project name改为 email-send, 并将form名称及caption更改为email-send  。

在屏幕的form上加入一个mapimessage
control,取名为mapim1;加入一个mapisession control,取名为mapis1;加入三个textbox control,取名为subject、content、addr。并在三个textbox前各加入一个label,将caption分别改为subject、content、addr。

为方便读者了解彼此关系,以下表解释一遍:
(textbox)
name
-----------------------------------------------------
subject(输入信件标题)
content(输入信件内容)
addr(输入信件要传送的位址)

(label)
caption
-----------------------------------------------
subject(输入信件标题提示)
content(输入信件内容提示)
addr(输入信件要传送的位址提示)

将mapim1的各项property设置如下:
download mail=true
logoui= true
newsession=false
username="test"
这里将download mail设置为true,当程序和mail server第一次连接时,会将新的mail download到local端。将logoui设置为true,则当您程序中logon名称输入错误时,系统会显示一个message box来让您输入正确的名称。由于这个程序仅使用到一条session,我们将它的值设置成false。当然啦!如果您有许多session要建立的话,也可以将它设置成true。username中所填的,是我们在exchange中所新增的设置文件名称;如果没有填内容的话,系统将会显示一些message box请您输入文件。


在屏幕的form上加入三个button control,logon、logoff与send,分别将caption 改为log on、log off、send。

(button)
name caption
--------------------------------------------------------
logon(执行登入命令) logon
logoff(执行登出命令) logoff
send(执行传出信件命令) send

在 logon_click()中加入以下程序代码,这个动作是使我们登录到mail server。
mapis1.signon
mapim1.sessionid = ms1.sessionid
msgbox "your id is" + str(ms1.sessionid)

ms1.signon是作登录的动作。在登录时,因为已经将mapim1 control的download mail属性设置为true,所以可以在屏幕上看到message box显示系统正在download mail。登录成功后,系统会传回一个sessionid,将该id填入mapim1的sessionid中,这样就可以利用这条session来传送e-mail。

在 logoff_click()中加入以下程序代码,这个动作是使我们离开mail
server。
mapis1.signoff

在 send_click()中加入以下程序代码,这个动作是使我们发送email。
mapim1.compose
mapim1.recipdisplayname = addr.text
mapim1.addressresolveui = true
mapim1.msgsubject = subject.text
mapim1.msgnotetext = content.text
mapim1.send
msgbox "you successful"
compose命令的主要目的,是使您可以改变recipdisplayname的内容,将所需传送的e-mail地址、主题、文章内容分别填入recipdisplayname、msgsubject、msgnotetext,接着用send命令发送。

step 3:用ie 3.0 mail程序测试程序
执行上面设计的email-send程序。在subject textbox中填入"发信测试",在address textbox中填入gzsydici@public1.guangzhou.gd.cn,在content textbox中输入要传送的内容:"大家好!这是发信测试",接着按传送。这样信件就发送出去了!

执行ie 3.0选择接收信件,在mail选项中选择read mail。我们会在inbox中看到一封标题为"发信测试"的信件,接着我们看看它的内容,没错!那就是我们刚寄出的测试信。

e-mail接收部分

step 1:程序设计

在file选项中选择new project建立一个新的工程。在屏幕上看到许多选项,如 activex document.exe、activex document.dll、activex.exe、activex control等,这时要选standard.exe。

接着在project下,选择property属性选项;在general选项下,将project name改为 email-get,并将form名称及caption更改为 email-get。

在屏幕的form上加入一个mapimessage control,取名为mapim1;加入一个 mapisession control,取名为mapis1;加入三个textbox control,分别取名为 subject、content、indexno, 将其caption改为mail-subject、mail-content、 indexno;并在textbox前各加入一个label control,将caption分别改为subject、 content、indexno。

将mapim1的各项property设置如下:
download mail=true
logoui=true
newsession=false
username="test"
这些设置原理如同设计发送mail程序部分。接着,在屏幕的form上加入一个button control get-mail,将caption改为get mail。如同发送mail 程序部分和mail server建立一条session。

在 get-mail_click() 中加入以下程序代码,这个动作是使我们接收email。
mapim1.fetch
form1.caption=mapim1. msgcount
mapim1.msgindex=cint(indexno.text)
subjec.text = mm1.msgnotetext
content.text = mapi1.msgsubject
fetch命令,是将信件抓到系统存贮器的inbuffer中。我们将信件抓回来后,可以由 msgcount property知道信件数量。接着可以用msgindex设置要看哪一封信件的内容、标题。

stept 2:测试mail接收程序
首先用任何一种mail程序,任意书写几封信到mail server。在form1的caption中,我们会看到所接收的信件的数量。 执行上面设计的email-get程序,在indexno textbox中填入1。接着按get mail button,这样信件内容及标题就会显示在content、subject两个textbox中。恭喜您成功了!

本文关键:用VB5.0设计E-Mail程序
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top