当前位置: 代码迷 >> PB >> 怎么用OLE通过outlook express发邮件
  详细解决方案

怎么用OLE通过outlook express发邮件

热度:240   发布时间:2016-04-29 10:35:56.0
求助如何用OLE通过outlook express发邮件
如题。PB 11.5版本

------解决方案--------------------
在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.单击“地址簿”菜单项或工具图标,执行地址簿处理程序。该程序弹出通
讯簿窗口,供你增加、编辑或删除邮件地址属性。
  相关解决方案