万卷书>>电脑书籍>>程序设计>>pb程序设计>>PowerBuilder使用技巧集

WANJUANSHU.COM

在PB应用中收发电子邮件

 

广 东 珠 海
卞 国 斌



 

---- 随 着Internet 进 入千 家 万 户, 通 过Internet 收 发 电 子 邮 件 将 成 为 人 们 最 受 欢迎 的 通 讯 手 段 之 一。 如 果 我 们 的 应 用 程 序 也 能 够 提 供收 发 电 子 邮 件 的 功 能, 就 可 以 使 我 们 方 便 快 捷 地 与 他人 交 换 和 共 享 应 用 的 数 据 和 信 息, 使 其 应 用 真 正 地 溶合 于Internet 这 个 大 环 境。 下 面 我 介 绍 一 下 在PowerBuild 应 用中 实 现 收 发 电 子 邮 件 的 方 法。


 

---- 在PowerBuild 应 用中 实 现 收 发 电 子 邮 件, 主 要 是 通 过PowerBuild 系 统 提 供 的 一套 用 于 邮 件 操 作 的 内 嵌 函 数。 这 些 函 数 实 现 其 应 用 到微 软 公 司 的MAPI(Message Application Program Interface) 标 准 之 间 的 接口。


 

---- 一、 作 为 举 例, 创 建 一 个MDI 风 格 的 窗 口w_mail。 在 这 个 窗 口 上, 放 置 一 个含 接 收 邮 件、 发 送 邮 件 和 地 址 薄 三 个 带 图 标 的 菜 单 项的 菜 单m_mail, 一 个 多 行 编 辑 器mle_1。 整 个 窗 口 的 外 观 如 下:


 

---- [ 图 略]


 

---- 二、 为 各 菜 单项 编 制 事 件(Event) 处 理 程 序(Script)。 程 序 行 中// 后 的 为 说明 文 字。


 

---- 1. 在 菜 单 项“ 接 收 邮 件” 的 单 击(Clicked) 事 件 下 输 入 下 面 程 序:


 


mailsession mses
//定义对象mses,以供在程序中引用
mailmessage mmsg
//定义结构mmsg,此结构用于描述邮件的内容
mailrecipient mrec
//定义结构mrec,它标识邮件的接收者和发送者
mailreturncode mreturn
//定义返回码,用于存放函数的返回值
int mnbr
//定义临时变量


//产生邮件会话对象mses mses = create mailsession

//邮件登录。此处用户名,口令缺省 mreturn = mses.maillogon(mailnewsession!) if mreturn <> mailreturnsuccess! Then messagebox("邮件登录","邮件登录失败!") return end if

//获得接收到尚未读过的邮件ID号。 它是放在mses中的一个字符串数组 mreturn = mses.mailgetmessages(true) if mreturn <> mailreturnsuccess! then messagebox("邮件获取","邮件获取失败或无新邮件!") return end if

//获得接收到尚未读过的邮件数目 mnbr = upperbound(mses.messageid[])

//读取最后接收到的邮件内容。 它被放在mmsg的notetext的字符串字段中 mses.mailreadmessage(mses.messageid[mnbr], mmsg,mailentiremessage!,true)

//把获得的邮件内容放到窗口w_mai1上的多行编辑器mle_1中 w_mai1.mle_1.text=mmsg.notetext

//退出登录 mses.maillogoff()

//取消邮件会话 destroy mses


 

---- 2. 在 菜 单 项“ 发 送 邮 件” 的 单 击(Clicked) 事 件 下 输 入 下 面 程 序:


 


mailsession mses
mailmessage mmsg
mailreturncode mreturn


//产生邮件会话对象mses mses = create mailsession

//邮件登录 mreturn = mses.maillogon(mailnewsession!) if mreturn <> mailreturnsuccess! then messagebox("邮件登录","邮件登录失败!") return end if

//弹出邮件地址窗口,获取邮件接收者的地址。 地址及名字是放在mmsg中的一 个结构数组 mreturn = mses.mailaddress(mmsg) if mreturn <> mailreturnsuccess! then messagebox("邮件地址","邮件地址出错!") return end if

//把窗口w_mai1上的多行编辑器mle_1 中的内容放到mmsg的notetext字段中 mmsg.notetext = w_mai1.mle_1.text

//发送邮件 mreturn = mses.mailsend(mmsg) if mreturn <> mailreturnsuccess! then messagebox("邮件发送","邮件发送失败!") return else messagebox("邮件发送","邮件发送成功!") end if

//退出登录 mses.maillogoff()

//取消邮件会话 destroy mses


 

---- 3.在菜单项“地址簿”的单击(Clicked)事件下输入程序:


 


mailsession mses
mailmessage mmsg
mailreturncode mreturn


//产生邮件会话对象mses mses = create mailsession

//邮件登录 mreturn = mses.maillogon(mailnewsession!) if mreturn <> mailreturnsuccess! then messagebox("邮件登录","邮件登录失败!") return end if

//弹出邮件地址窗口,获取邮件接收者的地址 mreturn = mses.mailaddress(mmsg) if mreturn <> mailreturnsuccess! then messagebox("邮件地址","邮件地址出错!") return end if

//退出登录 mses.maillogoff()

//取消邮件会话 destroy mses


 

---- 三、 执 行 程序。 正 常 执 行 程 序 的 前 提 是, 在Powerbuild 应 用 所 在 的 机 器上 已 装 有Microsoft Mail 客 户 软 件。


 

---- 1. 单 击“ 接 收邮 件” 菜 单 项 或 工 具 图 标, 执 行 接 收 邮 件 处 理 程 序。 该程 序 将 最 后 接 收 到 尚 未 读 过 的 邮 件 内 容 显 示 到 窗 口的 多 行 编 辑 器 中。


 


如 果 把mreturn = mses.mailgetmessages(true) 改 为:
mreturn = mses.mailgetmessages()
便 可 获 得 全 部 邮 件( 包 含 已 读 过 的 邮 件)。


 

---- 2. 单 击“ 发 送邮 件” 菜 单 项 或 工 具 图 标, 执 行 发 送 邮 件 处 理 程 序。 该程 序 执 行 过 程 中, 弹 出 地 址 簿 窗 口, 在 你 选 择 好 接 收 者后, 则 将 窗 口 的 多 行 编 辑 器 中 的 内 容 发 送 出 去。


 

---- 3. 单 击“ 地 址簿” 菜 单 项 或 工 具 图 标, 执 行 地 址 簿 处 理 程 序。 该 程 序弹 出 通 讯 簿 窗 口, 供 你 增 加、 编 辑 或 删 除 邮 件 地 址 属性。

 
上一页 WanJuanShu.COM 下一页
WANJUANSHU.COM 万卷书