在PB应用中收发电子邮件

转载 2012年03月31日 11:10:21

在PB应用中收发电子邮件

(加入日期:2001-4-12)

保存文章至硬盘】【打印文章】【字体:

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

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

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

---- [ 图 略]

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

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

mailsession mses
file://定义对象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[])
     file://读取最后接收到的邮件内容。
    它被放在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. 单 击“ 地 址 簿” 菜 单 项 或 工 具 图 标, 执 行 地 址 簿 处 理 程 序。 该 程 序 弹 出 通 讯 簿 窗 口, 供 你 增 加、 编 辑 或 删 除 邮 件 地 址 属 性。 

邮件的发送与接收原理

1.邮件开发涉及到的一些基本概念 1.1、邮件服务器和电子邮箱   要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:sina、soh...
  • u014520047
  • u014520047
  • 2016年07月20日 11:21
  • 5104

Python3笔记-电子邮件的收发

一、电子邮件的发件过程: 发件人email->MUA(mail user agent:邮件用户代理)->MTA(mail transfer agent:邮件传输代理)->MDA(mail delive...
  • kornberg_fresnel
  • kornberg_fresnel
  • 2016年04月23日 23:50
  • 4150

电子邮件发送的原理以及简易实现

在代码开始之前,我们先
  • lishuhuakai
  • lishuhuakai
  • 2014年05月29日 13:04
  • 8331

电子邮件收发协议总结

电子邮件发送协议是一种基于“推”的协议,主要包括SMTP;邮件接收协议则是一种基于“拉”的协议,主要包括POP协议和IMAP协议,在正式介绍这些协议之前,我们先给出邮件收发的体系结构:...
  • JXH_123
  • JXH_123
  • 2014年06月30日 13:41
  • 3925

计算机网络之电子邮件系统

电子邮件系统一个电子邮件系统应具有三个主要组成部分:用户代理、邮件服务器、邮件发送协议(如SMTP)与邮件读取协议(如POP)。用户代理(User Agent)就是用户与电子邮件系统的接口,在大多数情...
  • u012152619
  • u012152619
  • 2015年09月23日 12:13
  • 2402

电子邮件的收发及传输过程解析

在了解电子邮件之前,我们先看看传统邮件是如何运作的。假设你现在在北京,要给一个香港的朋友发一封信,怎么做呢? 首先你得写好信,装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去。 ...
  • qq_36617684
  • qq_36617684
  • 2017年11月13日 16:11
  • 97

Yii2.0 探究四 :收发电子邮件

一、强悍的扩展—— yii2-swiftmailer:原理: Yii2.0中集成了邮件的发送类,包括基础的操作的封装,这也是框架的强大之处:类似的还有国际化的多语言配置,等等可以去探索, 操作:...
  • LLopensorce
  • LLopensorce
  • 2016年10月20日 22:34
  • 144

PB编程常用API函数

1. 如何使PB窗口总在最上层    通过SetWindowPos函数吧窗口的显示层次修改为HWND_TOPMOST,就可以使指定窗口永远不会被其他窗口覆盖,该函数声明为:    Func...
  • DavinciTeam
  • DavinciTeam
  • 2013年01月28日 13:00
  • 8343

.NET发送邮件和接收邮件

lumisoft 类库可以到 http://www.lumisoft.ee/lsWWW/download/downloads/Net下载 using System; using Syste...
  • liangshui772
  • liangshui772
  • 2013年08月04日 18:24
  • 2403

pb开发web应用

说到pb开发web,一般是将pb发布成webservice,或者转成webform,两者都有很多限制,比如需要iis安装维护麻烦,调试困难,经常遇到莫名的错误,找不到资料,样式调整困难等问题。 随着互...
  • pcwe2002
  • pcwe2002
  • 2016年11月22日 16:43
  • 2492
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在PB应用中收发电子邮件
举报原因:
原因补充:

(最多只允许输入30个字)