您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > PB开发 > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始



-Java套接字编程(下)
-MediaStudio Pro 6.5教程
-三款卸载软件最新试用
-基于Visual C++的Winsock API研究

PowerBuilder 7.0中实现电子邮件的收发
2001-12-29· ·夏翔··yesky

上一页  1 2 3 4 5 6  下一页


  第二部分:邮件接收

  实现邮件接收和邮件发送的原理差不多,实现的方法也与邮件发送类似。我们首先要为程序声明一个邮件会话对象,像这样:

mailsession mses
mSes = create mailSession

  然后在接收邮件之前先建立邮件会话

mRet = mSes.mailLogon(mailNewSession!)

  一旦登陆成功就首先调用邮件会话函数mailGetMessages()来得到用户收件箱中的各消息标识,调用如下:

mSes.mailGetMessages()

  因为我们每天都会删除一些旧邮件和收到一些新的邮件,所以在收件箱中的邮件数目是不确定的,有时多有时少。因此,在读取邮件之前必须首先要知道在收件箱中总共有多少封邮件,只有这样才能保证每一封邮件都能被读到。

  通过查阅函数手册我们不难发现邮件会话对象中的,用于保存用户消息在收件箱中的标识的属性,即能够唯一代表一个邮件的ID号,它是个字符串数组形式。有多少个邮件标识就代表有多少封邮件。因此,如果能够知道它的数组的上界就可以得知总共有多少封邮件,这个值可以用系统提供的数组函数UpperBound()来得到,实现代码如下:

mailcount = UpperBound(mSes.MessageID[])

  知道了邮件总数我们就可以用一条循环语句依次读取每一封邮件。至于能够读取邮件的哪部分内容还要看在调用打开邮件消息函数mailReadMessage时其中代表要得到消息的那部分内容的参数是选择的什么。要是只想得到邮件消息头,即,只包含邮件标题以及其他一些附加属性,像到达日期,是否标记为已读等,就可以用"mailEnvelopeOnly!",但如果还想得到正文及附件就必须用"mailEntireMessage!"。因为本文的目的主要是为了能够在PB中使用邮件作为数据、报表的传递,而这些内容一般都是作为附件传送的,所以在下面的程序里我选用了"mailEntireMessage!"。但在使用我们发现,用"mailEntireMessage!"读取邮件时由于所要的信息量比较大,因此在读取的速度上会有一定的影响,不像用"mailEnvelopeOnly!"那么快,这点还需要你在编程时加以考虑。也因此我建议你在处理完该邮件之后应对它进行删除或归档。使得收件箱中邮件总数尽量达到最小。

上一页  1 2 3 4 5 6  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 PowerBuilder数据窗口中记录颜色的隔层显示
 在Powerbuilder中实现并应用树形视图
 在Powerbuilder中实现并应用树形视图
 PowerBuilder创建动态数据窗口综述
 Powerbuilder 控件的二次开发
 定制PB与SQL Anywhere的程序发布
 PB数据管道的实用程序设计技术
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!