- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
由于受到强大数据库功能的掩盖,PB 的邮件功能鲜为人知。在 VB 中可以轻松地利用 CDO 控件发邮件(Delphi 中用 NMSMTP),而 PB 中的邮件函数比它们更灵活、方便。
PB 以其独特高效的数据库访问技术,赢得了广大程序员的青睐。从表面上看,它似乎只适合于开发数据库应用程序,而事实上,PB 遵照信报接口 MAPI 的标准,开发了许多内部函数和数据结构,用于对电子邮件提供支持,因此也是一个相当不错的邮件应用程序开发工具。
一个邮件应用程序要处理的基本事务主要包括:登录到邮件服务器开始会话、接发邮件、结束邮件会话。在 PB 中,所有这些事务都围绕 mailSession 对象来展开,因此,编程时,需要在主窗口中定义一个该类型的实例变量:
mailSession MyMail
然后在 Open 事件中将其初始化: MyMail=Create mailSession 1.登录到邮件服务器
MyMail 经过初始化以后,还要用 mailLogon 命令将其连接到一个邮件服务器:
MyMail.mailLogon(′jq75′,′alexander′,mailNewSessionWith DownLoad!)
前两个参数分别为用户名和口令,若被忽略,运行时就会出现一个注册对话框。最后一个参数表示新建一个邮件会话,并将服务器上属于 jq75 的邮件下载到他的收件箱中。
图 1
阅读邮件
用户信息在服务器上通过验证以后,一个有效的邮件会话就建立了,接下来要做的工作就是接发邮件。
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) //显示当前邮件的附件及其在硬盘上存放的位置
发送邮件
图 2 是邮件应用程序的发送界面,它接收收件人地址、邮件主题、消息体和附件,用于填充一个mai lMessage 类型的对象 msg,然后发送。“添加附件”按钮用于选择磁盘文件,其 Clicked 事件代码为:
图 2
String docName, Named Integer Value
Value = GetFileOpenName(″选择附件″, docName, Named, ″DOC″, ″All Files (*.*),*.
*″)
If Value = 1 Then plb—2.AddItem(docName,1)
//docName 中必须包含完整的路径信息
“删除附件”按钮用于把已添加的
文档评论(0)