| | | PowerBuilder 7.0中实现电子邮件的收发 | | 2001-12-29·
·夏翔··yesky
| 上一页 1 2 3 4 5 6 下一页 第二部分:邮件接收
实现邮件接收和邮件发送的原理差不多,实现的方法也与邮件发送类似。我们首先要为程序声明一个邮件会话对象,像这样:
mailsession mses mSes = create mailSession | 然后在接收邮件之前先建立邮件会话
| mRet = mSes.mailLogon(mailNewSession!) | 一旦登陆成功就首先调用邮件会话函数mailGetMessages()来得到用户收件箱中的各消息标识,调用如下:
因为我们每天都会删除一些旧邮件和收到一些新的邮件,所以在收件箱中的邮件数目是不确定的,有时多有时少。因此,在读取邮件之前必须首先要知道在收件箱中总共有多少封邮件,只有这样才能保证每一封邮件都能被读到。
通过查阅函数手册我们不难发现邮件会话对象中的,用于保存用户消息在收件箱中的标识的属性,即能够唯一代表一个邮件的ID号,它是个字符串数组形式。有多少个邮件标识就代表有多少封邮件。因此,如果能够知道它的数组的上界就可以得知总共有多少封邮件,这个值可以用系统提供的数组函数UpperBound()来得到,实现代码如下:
| mailcount = UpperBound(mSes.MessageID[]) | 知道了邮件总数我们就可以用一条循环语句依次读取每一封邮件。至于能够读取邮件的哪部分内容还要看在调用打开邮件消息函数mailReadMessage时其中代表要得到消息的那部分内容的参数是选择的什么。要是只想得到邮件消息头,即,只包含邮件标题以及其他一些附加属性,像到达日期,是否标记为已读等,就可以用"mailEnvelopeOnly!",但如果还想得到正文及附件就必须用"mailEntireMessage!"。因为本文的目的主要是为了能够在PB中使用邮件作为数据、报表的传递,而这些内容一般都是作为附件传送的,所以在下面的程序里我选用了"mailEntireMessage!"。但在使用我们发现,用"mailEntireMessage!"读取邮件时由于所要的信息量比较大,因此在读取的速度上会有一定的影响,不像用"mailEnvelopeOnly!"那么快,这点还需要你在编程时加以考虑。也因此我建议你在处理完该邮件之后应对它进行删除或归档。使得收件箱中邮件总数尽量达到最小。
上一页 1 2 3 4 5 6 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|