数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用PB编写邮件应用程序

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

  由于受到强大数据库功能的掩盖,PB的邮件功能鲜为人知。在VB中可以轻松地利用CDO控件发邮件(Delphi中用NMSMTP),而PB中的邮件函数比它们更灵活、方便。

  PB以其独特高效的数据库访问技术,赢得了广大程序员的青睐。从表面上看,它似乎只适合于开发数据库应用程序,而事实上,PB遵照信报接口MAPI的标准,开发了许多内部函数和数据结构,用于对电子邮件提供支持,因此也是一个相当不错的邮件应用程序开发工具。

  一个邮件应用程序要处理的基本事务主要包括:登录到邮件服务器开始会话、接发邮件、结束邮件会话。在PB中,所有这些事务都围绕mailSession对象来展开,因此,编程时,需要在主窗口中定义一个该类型的实例变量:

  mailSession MyMail

  然后在Open事件中将其初始化:

  MyMail=Create mailSession

  1.登录到邮件服务器

  MyMail经过初始化以后,还要用mailLogon命令将其连接到一个邮件服务器:

  MyMail.mailLogon(′jq75′,′alexander′,mailNewSessionWithDownLoad!)

  前两个参数分别为用户名和口令,若被忽略,运行时就会出现一个注册对话框。最后一个参数表示新建一个邮件会话,并将服务器上属于jq75的邮件下载到他的收件箱中。

217910__b1301t01.jpg图1

  2.阅读邮件

  用户信息在服务器上通过验证以后,一个有效的邮件会话就建立了,接下来要做的工作就是接发邮件。

  PB用一个mailMessage对象来描述一封邮件,该对象封装了邮件的主题、地址、消息体和附件等信息。图1是邮件应用程序的阅读界面,它列出了收件箱中的所有邮件,可选择其中一封进行阅读。主窗口Open事件的代码为:

  …… //连接到邮件服务器

  MyMail.mailGetMessages()

  //用收件箱中的邮件填充MyMail对象

  iNum=UpperBound(MyMail.MessageID[])

  //获取收件箱中的邮件数目

  For i=1 To iNum //读取收件箱中的每一封邮件,并将其主题添加到列表框中

  MyMail.mailReadMessage(MyMail.MessageID[i],msg, mailEntireMessage!,True)

  tab—1.tabpage—1.plb—1.AddItem(msg.Subject,1)

  Next //msg为mailMessage类型的实例变量

  在plb—1控件的SelectionChanged事件中加入下列代码:

  MyMail.mailReadMessage(MyMail.MessageID[index],msg, mailEntireMessage!,True)

  sle—1.Text=msg.Subject

  //显示当前邮件的主题

  sle—2.Text=msg. Recipient[1].Address

  //显示发件人地址

  sle—3.Text=msg.DateReceived

  //显示收件时间

  mle—1.text=msg.NoteText

  //显示邮件的消息体

  iAttachmentFileNum=UpperBound(msg.AttachmentFile[])

  //获取当前邮件的附件数目

  For i=1 To iAttachmentFileNum

  strAttFile= strAttFile +msg.AttachmentFile[i].PathName+″~r~n″

  Next //strAttFile为String类型的实例变量

  在“附件”按钮的Clicked事件中加入下列代码:

  MessageBox(″邮件附件″, strAttFile) //显示当前邮件的附件及其在硬盘上存放的位置

  3.发送邮件

  图2是邮件应用程序的发送界面,它接收收件人地址、邮件主题、消息体和附件,用于填充一个mailMessage类型的对象msg,然后发送。“添加附件”按钮用于选择磁盘文件,其Clicked事件代码为:

217910__b1301t02.jpg图2


  String docName, Named

  Integer Value

  Value = GetFileOpenName(″选择附件″, docName, Named, ″DOC″, ″All Files (*.*),*.*″)

  If Value = 1 Then

  plb—2.AddItem(docName,1)

  //docName中必须包含完整的路径信息

  “删除附件”按钮用于把已添加的文件去掉,其Clicked事件代码为:

  Ind= plb—2.SelectedIndex()

  If Ind〈〉-1 Then plb—2. DeleteItem(Ind)

  “发送”按钮的Clicked事件代码为:

  msg.Subject=sle_4.Text //邮件主题

  msg.NoteText=mle—2.Text //消息体

  msg.Recipient[1].RecipientType=mailTo!

  //指定收件人类型为mailTo!

  msg.Recipient[1].Address=′SMTP:′+sle—5.Text

  //收件人地址,前面必须加上SMTP协议

  For i=1 To plb—2.TotalItems()

  //把选中的文件加到附件中

  msg.AttachmentFile[i].FileType=mailAttach! //指定附件i的类型

  msg.AttachmentFile[i].PathName= plb—2.Text(i) //附件i的完整文件名

  Next

  MyMail.mailSend(msg) //发送邮件

  4.结束邮件会话

  在“退出”按钮的Clicked事件中加入下列代码:

  MyMail.mailLogoff() //结束邮件会话

  Destroy MyMail //销毁会话对象

  至此,一个简单的邮件应用程序就编好了,它虽然还不足以和FoxMail、Outlook相媲美,但已经具备了它们最基本的功能。

  例子中的程序在PB6.5中调试通过,大部分代码可以直接利用




相关文章

相关软件