首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 软件教学-> 其他工具
在vb、vfp应用系统中收发邮件_邮件服务器
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
E-mail是Internet/Intranet网上通信的最主要的方式之一,充分利用E-mail 的功能可以极大地提高企业的工作效率,减轻用户的工作负担。Windows 95中提供了一个名为Exchange的电子邮件客户程序,它包含了收件箱、发件箱、收发消息、消息优先级等功能,广泛支持超文本消息、收发传真和Internet邮件等内容,可以在LAN、Microsoft Fax、远程邮件、Internet等多种软件环境中工作。在VFP、VB开发的应用系统中结合Exchange的邮件服务功能,可以使您的应用系统功能更强大、服务更完善、使用更方便。下面介绍VB、VFP的MAPI控件以及在VB、VFP应用系统中使用这些控件收发E-mail的方法。

   一.MAPI控件概述

   MAPI(通信应用程序接口)控件,即MSMAPI32.OCX,包括两个OLE控件:MAPISession(MAPI工作期)控件和MAPIMessage(MAPI消息)控件。MAPISession控件的功能是负责建立会话、取消会话的一个MAPI工作期。MAPIMessage控件则提供了发送、接收等所有对电子邮件进行处理的功能。

   MAPISession控件用来注册一个新工作期和注销当前工作期。注册时,首先

  用MAPISession控件的SignOn方法建立与E-mail服务器的会话连接,显示完注册对话框后,SessionID属性包含了刚注册的MAPISession的句柄。此句柄最终必须传递给MAPIMessage控件,在结束当前MAPISession工作期之前,必须先注销该工作期。然后再用MAPIMessage控件的SessionID属性同有效的会话联系起来,执行一系列消息系统函数,实现收发邮件的功能。

   二.MAPI控件的主要属性

   (1)MAPISession控件的属性:

   Action属性:当MAPISession控件被激活时,该属性将决定执行什么操作。

   LogonUI属性:该属性指定是否显示注册对话框。当其值为“真”时,则出

  现一个对话框提示新用户输入用户名和口令;当其值为“假”时,则不显示对话框。

   SessionID属性:返回当前的消息会话句柄。指定SignOn方法时,可以设置该属性的值。使用MAPIMessage控件处理消息时,需要使用此会话句柄,其缺省值为0。

   SignOn方法:将用户登录到UserName和Password属性所指定的帐户中,并将会话句柄存储到属性SessionID中。

   SignOff方法:结束消息会话,从UserName和Password属性所指定的帐户中

  退出。

   (2)MAPIMessage控件的属性:

   Action属性:当MAPIMessage控件被激活时,该属性决定将执行什么操作。

   SessionID属性:存储由MAPISession控件的SessionID属性返回的消息会话句柄。

   FetchSorted属性:在用收件箱中的消息填充消息集合时,指定或返回消息的排序。当其值为“真”时,按接收消息的顺序向消息集合添加消息;当其值为“假”时,由用户收件箱中的排序添加消息。

   FetchUnreadOnly属性:决定是否将消息集合中的消息限定为未读消息。当其值为“真”时,只向消息集合添加FetchMsgType属性指定的未读消息;当其值为“假”时,添加收件箱中适当类型的全部消息。

   MsgCount属性:用于在消息工作期间返回存在于消息设置中的消息的总数。

   MsgIndex属性:指定当前索引消息的索引编号。在索引改变时,所有消息的其它属性也随之改变,以反映索引消息的特征。索引号的范围是从-1到MsgCount-1。

   MsgOrigDisplayName属性:返回当前索引消息的原始发件人的名字。

   MsgOrigAddress属性:返回当前索引消息的原始发件人的邮件地址。

   RecipDisplayName、RecipAddress、MsgSubject、MsgNoteText属性:分别指定当前索引的收件人姓名、收件人的邮件地址、主题、文本行,构成一条完整的消息。

   Send方法:发送一条消息。它带有一个参数nDialog,当nDialog为“真”时,显示Exchange邮件系统的操作界面,由用户输入消息的各个部分,并将消息提交邮件服务器传送;当nDialog为“假”时,则不显示相应的操作界面,而将消息提交给邮件服务器。

   Reply方法:响应一个消息。将当前索引的消息复制到构成缓冲区中,并将RE:加入标题行的开始,同时将MsgIndex属性设置为-1。

   Delete方法:删除一个消息、收件人或附件。

   Compose方法:构成一条消息。

   Fetch方法:由收件箱中选择的消息创建一个消息集合。

  

   三.应用实例

   ★应用实例一:用VB 5.0的MAPI控件收发邮件。

  1. 插入MAPI控件的方法:

  在VB 5.0主菜单的“工程”项中选择“部件(0)”,在弹出的控件栏中,双击“Microsoft MAPI Control 5.0”项,按“确定”键返回。那么,在窗体工具箱中就有了上述控件。

  2.建立含有如下控件的窗体:

   控件 NAME CAPTION

   主窗体 frmMail 用VB 5.0的MAPI控件收发邮件

   MAPISession控件 MailSess

   MAPIMessage控件 MailMess

   命令按钮 cmdNewMail 发件箱

   命令按钮 cmdGetMail 收件箱

   命令按钮 cmdExit 退出

   子窗体 frmNewMail 发件箱

   标签 label1 收件人:

   标签 label2 主题:

   文本框 TEXT1 输入收件人的电子邮件地址

   文本框 TEXT2 输入文本的主题

   文本框 TEXT3 输入文本内容

   命令按钮 MailSend 发送邮件

   子窗体 frmGetMail 收件箱

   标签 label1 发件人:

   标签 label2 主题:

   文本框 TEXT1 发件人的电子邮件地址

   文本框 TEXT2 发来的文本主题

   文本框 TEXT3 发来的文本内容

   命令按钮 cmdPrevious 向前

   命令按钮 cmdNext 向后

  

   输入主窗体“发件箱”按钮的程序代码:

   Private Sub cmdNewMail_Click()

   frmNewMail.Show

   End Sub

  

   输入主窗体“收件箱”按钮的程序代码:

   Private Sub cmdGetMail_Click()

   frmGetMail.Show

   End Sub

  

   输入主窗体“退出”按钮的程序代码:

   Private Sub cmdExit_Click()

   frmMail.MailSess.SignOff 断开连接

   End

   End Sub

  

   输入frmNewMail子窗体“发送邮件”按钮的程序代码:

   Private Sub MailSend_Click()

   frmMail.MailSess.SignOn 建立连接

   frmMail.MailMess.SessionID = frmMail.MailSess.SessionID

   frmMail.MailMess.MsgIndex = -1

   frmMail.MailMess.RecipDisplayName = Text1.Text

   frmMail.MailMess.MsgSubject = Text2.Text

   frmMail.MailMess.MsgNoteText = Text3.Text

   frmMail.MailMess.Send (False)

   frmMail.MailSess.SignOff

   End Sub

  

   输入frmGetMail子窗体装入的程序代码:

   Private Sub Form_Load()

   Dim mailIndex, mailCounts As Integer

   frmMail.MailSess.SignOn

   frmMail.MailMess.SessionID = frmMail.MailSess.SessionID

   frmMail.MailMess.FetchSorted = True

   frmMail.MailMess.FetchUnreadOnly = True

   frmMail.MailMess.Action = 1

   mailCounts = frmMail.MailMess.MsgCount

   If mailCounts = 0 Then

   Text3.Text = "收件箱中没有邮件!"

   frmGetMail.cmdPrevious.Enabled = False

   frmGetMail.cmdNext.Enabled = False

   Else

   frmGetMail.MailMess.MsgIndex = 0

   frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress

   frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject

   frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText

   End If

   End Sub

  

   输入frmGetMail子窗体“向前”按钮的程序代码:

   Private Sub cmdPrevious_Click()

   mailIndex = frmGetMail.MailMess.MsgIndex

   frmGetMail.MailMess.MsgIndex = mailIndex - 1

   frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress

   frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject

   frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText

   If mailIndex = 0 Then

   frmGetMail.cmdPrevious.Enabled = False

   End If

   End Sub

  

   输入frmGetMail子窗体“向后”按钮的程序代码:

   Private Sub cmdNext_Click()

   mailCounts = frmGetMail.MailMess.MsgCount - 1

   mailIndex = frmGetMail.MailMess.MsgIndex

   frmGetMail.MailMess.MsgIndex = mailIndex + 1

   frmGetMail.Text1.Text = frmMail.MailMess.MsgOrigAddress

   frmGetMail.Text2.Text = frmMail.MailMess.MsgSubject

   frmGetMail.Text3.Text = frmMail.MailMess.MsgNoteText

   If mailIndex = mailCounts Then

   frmGetMail.cmdNext.Enabled = False

   End If

   End Sub

  

   ★应用实例二:用VFP 5.0的MAPI控件收发邮件。

  1. 插入MAPI控件的方法:

  在VFP 5.0主菜单的“工具”项中选择“选项”,在弹出的控件栏中,双击“Microsoft MAPI Control 5.0”项,那么,在窗体工具箱中就有了上述控件。

  2.建立含有如下控件的窗体:

   控件 NAME CAPTION

   窗体 frmMail 用VFP 5.0的MAPI控件收发邮件

   MAPISession控件 MailSess

   MAPIMessage控件 MailMess

   命令按钮 command1 发件箱

   命令按钮 command2 收件箱

   命令按钮 command3 退出

  

   输入“发件箱”按钮单击事件的程序代码:

   thisform.MailSess.SignOn

   thisform.MailMess.SessionID = thisform.MailSess.SessionID

   thisform.MailMess.MsgIndex = -1

   thisform.MailMess.RecipDisplayName = "zjport@public.jsinfo.com.cn"

   thisform.MailMess.MsgSubject = "信件"

   thisform.MailMess.MsgNoteText = "请给我发邮件!"

   thisform.MailMess.Send (.F.)

   thisform.MailSess.SignOff

  

   输入“收件箱”按钮单击事件的程序代码:

   thisform.MailSess.SignOn

   thisform.MailMess.SessionID = thisform.MailSess.SessionID

   thisform.MailMess.FetchSorted = .T.

   thisform.MailMess.FetchUnreadOnly = .T.

   thisform.MailMess.Action = 1

   xx=

   for mm=0 to thisform.MailMess.MsgCount-1

   thisform.MailMess.MsgIndex = mm

   xx=xx+thisform.MailMess.MsgNoteText+chr(13)+chr(10)

   endf

   thisform.MailSess.SignOff

  

   输入“退出”按钮的程序代码:

   thisform.MailSess.SignOff

   release thisform

   上述程序只是给出用VB 5.0和VFP 5.0开发E-mail程序的简单案例,用户可以结合自己的实际情况,将上述程序修改、完善后,加入到自己的应用系统中去,使应用系统的功能更强大。

   以上程序在同创P/200、中文WINDOWS 95、WINDOWS NT 4.0、Visual Foxpro 5.0、Visual Basic 5.0软、硬件环境中运行并通过。

,

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·用javascript调用webservice(webservice behavior)-ASP教程,ASP应用
·Java中对文件的操作-JSP教程,Java技巧及代码
·VB.net进阶:VB.net下的Sniffer-.NET教程,VB.Net语言
·如何利用VB.NET修改系统时间-.NET教程,VB.Net语言
·电源技术与电子变压器
·解析几种有效开关电源电磁干扰抑制
·教你完全卸载智能abc输入法
·电源系统中多个子系统之间电磁兼容
·ASP.net 2.0 自定义控件的开发之数据分页 第一章-.NET教程,Asp.Net开发
·VS2005新控件之GridView 使用高级技巧系列[二][视频]-.NET教程,评论及其它
最新文章
·3000ip以下网站该如何赚钱_网赚技巧
·谈谈我的下载站日ip5000 月收入3000的经验_站长心得
·photoshop绘制逼真的自然背景:山间瀑布_photoshop教程
·删掉系统文件 让windows vista少占用我们的硬盘_windows vista
·突出网页内重要内容保证adsense匹配准确_网赚技巧
·借台电脑办网站—访深圳外来工站长姚永卫_站长访谈
·创建优秀网站的6个好习惯_站长心得
·做一个网站 营造氛围有多重要?_站长心得
·如何让网民爱上你的网站?(3)_站长心得
·专家支招域名安全“三原则”有效规避域名掠夺_站长心得
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭