首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > 邮件与程序开发 > 在VB、VFP应用系统中收发邮件 > 正文

在VB、VFP应用系统中收发邮件

出处:本站收集 作者:请作者联系 时间:2005-7-12 13:10:00
   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软、硬件环境中运行并通过。

,
相关文章 热门文章
  • 解决Gmail的imap收发邮件无法连接服务器的问题
  • 网易邮箱深化一箱多能概念 收发邮件更稳定
  • 收发邮件更稳定 网易邮箱继续深化一箱多能概念
  • 轻松收发邮件 诺基亚5800邮件设置技巧
  • Outlook收发邮件后网络断开的解决方法
  • TOM163收费邮箱发生故障致用户无法收发邮件
  • 调查显示:日本中老年人收发邮件增多
  • 无须安装软件 让多普达P860轻松收发邮件
  • 中国网民将可用中文地址收发邮件
  • Email母语化标准出台 网民可用中文地址收发邮件
  • KooMail收发邮件使用技巧三则
  • 9.7 Web方式收发邮件
  • 用C++ Builder实现电子邮件群发
  • 用Cdonts实现发送Email
  • Jmail的主要参数列表
  • ASP.NET 2.0发送电子邮件全面剖析之二
  • VC++ SMTP协议电子邮件传送剖析
  • 通过sina的smtp验证的Java发送邮件源代码
  • ASP.NET 2.0中发送电子邮件剖析之一
  • 在Asp.Net中使用SmtpMail发送邮件的方法
  • .NET环境下Email的技术介绍
  • ASP.NET 2.0发送电子邮件中存在的问题
  • 用ASP判断Email地址是否有效
  • IIS如何接收ServerXMLHTTP传过来的编码字符?
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号