使用VB收发电子邮件

2008-02-23 06:58:53来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

发 送 和 接 收 电 子 邮 件, 对 于 某 些 执 行 特 殊 任 务 的 应 用 程 序 而 言, 是 一 个 十 分 有 用 的 功 能。 例 如, 一 个 监 视 网 络 服 务 器 资 源 使 用 情 况 的 工 具 软 件, 如 果 它 具 有 自 动 发 送 电 子 邮 件 的 功 能, 那 么 当 它 发 现 服 务 器 的 资 源 使 用 已 经 接 近 事 先 设 定 的 临 界 状 态 时, 便 可 以 向 系 统 管 理 员 发 送 一 封 告 警 的 电 子 邮 件, 从 而 使 系 统 管 理 员 能 够 及 时 地 采 取 措 施, 以 避 免 重 大 事 故 的 出 现。 在Visual Basic 中, 应 用 程 序 可 以 通 过 调 用 微 软 公 司 的MAPI(Messaging Application Programming Interface, 消 息 应 用 程 序 编 程 接 口), 实 现 收 发 电 子 邮 件 的 功 能。 笔 者 将 在 本 文 中 结 合 简 单 实 例, 向 大 家 介 绍 在VB 程 序 中 实 现 电 子 邮 件 收 发 功 能 的 编 程 方 法。

---- 编 制 具 有 收 发 电 子 邮 件 功 能 的VB 程 序, 必 须 使 用Visual Basic 4.0 以 上 的 版 本, 因 为 只 有4.0 以 上 的Visual Basic 才 带 有 两 个 实 现 电 子 邮 件 收 发 功 能 的 核 心 控 件:MAPI 会 话 控 件 和MAPI 消 息 控 件。MAPI 会 话 控 件 用 于 建 立 和 控 制 一 个Microsoft Mail 会 话,MAPI 消 息 控 件 用 于 创 建 和 收 发 邮 件 消 息。 此 外, 程 序 必 须 运 行 在 采 用 遵 从MAPI 的 消 息 系 统( 如:Microsoft Exchange、Microsoft Mail、Outlook 等) 的 环 境 中。

.
.
.

---- 在 其 中 的“Available Controls” 列 表 框 中 选 中“Microsoft MAPI Controls” 表 项, 然 后 按“OK” 命 令 按 钮 退 出 该 对 话 框 .

.
.
---- 下 面, 笔 者 将 以 两 个 简 单 的VB 程 序 为 例, 分 别 介 绍 发 送 邮 件 和 接 收 邮 件 的 程 序 编 制 方 法。

---- 邮 件 发 送 程 序

---- 邮 件 发 送 程 序 的 基 本 处 理 过 程 是: 根 据 用 户 输 入 信 息 组 成 邮 件, 然 后 使 用MAPI 消 息 控 件 的Send 方 法 将 邮 件 发 出。 编 程 步 骤 如 下:

---- 1、 新 建 一 个VB 项 目。

---- 2、 将 缺 省 窗 体Form1 的Caption 属 性 设 置 为“ 发 送 邮 件”。

---- 3、 将MAPI 控 件 加 入VB 工 具 框。

---- 4、 在Form1 中 加 入 一 个MAPI 会 话 控 件MAPISession1 和 一 个MAPI 消 息 控 件MAPIMessages1。

---- 5、 在Form1 中 加 入 三 个 文 本 框 控 件, 将 它 们 的Name 属 性 分 别 设 置 为txtSendTo、txtSubject、txtMessage, 并 将txtMessage 的Multiline 属 性 设 置 为True。 这 三 个 文 本 框 控 件 将 分 别 用 于 填 写 邮 件 的 收 件 人、 主 题 和 内 容。

---- 6、 在Form1 中 加 入 三 个 标 签 控 件, 将 它 们 的Caption 属 性 分 别 设 置 为“ 收 件 人”、“ 主 题” 和“ 内 容”, 并 将 它 们 放 在 合 适 的 位 置 用 以 标 注 相 应 的 文 本 框 控 件。

---- 7、 在Form1 中 加 入 一 个 命 令 按 钮 控 件, 将 其Caption 属 性 和Name 属 性 分 别 设 置 为“ 发 送” 和“cmdSend”。

---- 8、 将 下 列 代 码 加 入Form1 的Form_Load 事 件:

Private Sub Form_Load()
MAPISession1.SignOn
End Sub

---- 9、 将 下 列 代 码 加 入Form1 的Form_Unload 事 件:

Private Sub Form_Unload(Cancel As Integer)
MAPISession1.SignOff
End Sub

---- 10、 将 下 列 代 码 加 入cmdSend 的Click 事 件:

Private Sub cmdSend_Click()
With MAPIMessages1
.MsgIndex = -1
.RecipDisplayName = txtSendTo.Text
.MsgSubject = txtSubject.Text
.MsgNoteText = txtMessage.Text
.SessionID = MAPISession1.SessionID
.Send
End With
MsgBox "邮件发送完毕!", , "发送邮件"
End Sub
.
.
.
---- 邮 件 接 收 程 序

---- 邮 件 接 收 程 序 比 邮 件 发 送 程 序 稍 微 复 杂 一 些。 首 先 需 要 使 用MAPI 消 息 控 件 的Fetch 方 法 读 取 邮 件, 这 个 过 程 将 把 用 户 收 件 箱 中 所 有 未 读 邮 件 全 部 装 入MAPI 消 息 控 件 中。 然 后, 检 查MAPI 消 息 控 件 的MsgCount 属 性 以 确 定 通 过Fetch 方 法 读 取 的 邮 件 的 总 数。 接 着, 可 以 通 过 设 置MAPI 消 息 控 件 的MsgIndex 属 性 来 指 定 具 体 需 要 处 理 哪 一 封 邮 件。 需 要 说 明 的 是,MsgIndex 属 性 值 的 计 数 是 从0 开 始 的, 也 就 是 说, 第 一 封 邮 件 的 索 引 号 是0, 第 二 封 邮 件 的 索 引 号 是1, 依 次 类 推。 编 程 步 骤 如 下:

---- 1、 新 建 一 个VB 项 目。

---- 2、 将 缺 省 窗 体Form1 的Caption 属 性 设 置 为“ 接 收 邮 件”。

---- 3、 将MAPI 控 件 加 入VB 工 具 框。

---- 4、 在Form1 中 加 入 一 个MAPI 会 话 控 件MAPISession1 和 一 个MAPI 消 息 控 件MAPIMessages1。

---- 5、 在Form1 中 加 入 三 个 标 签 控 件 和 一 个 文 本 框 控 件, 将 三 个 标 签 控 件 的Name 属 性 分 别 设 置 为lblMsgDateReceived、lblMsgOrigDisplayName、lblMsgSubject, 将 文 本 框 控 件 的Name 属 性 设 置 为txtMsgNoteText, 并 将 标 签 控 件 的Caption 属 性 和 文 本 框 控 件 的Text 属 性 的 内 容 清 空。 这 四 个 控 件 将 分 别 用 于 显 示 邮 件 的 日 期、 发 件 人、 主 题 和 内 容。

---- 6、 将txtMsgNoteText 控 件 的Locked 属 性 和Multiline 属 性 设 置 为True,ScrollBars 属 性 设 置 为2 - Vertical。

---- 7、 在Form1 中 再 加 入 四 个 标 签 控 件 用 于 标 注 上 述 四 个 控 件, 将 它 们 的Caption 属 性 分 别 设 置 为“ 日 期”、“ 发 件 人”、“ 主 题”、“ 内 容”。

---- 8、 在Form1 中 加 入 一 个 标 签 控 件, 将 其Name 属 性 设 置 为lblMsgCount,Caption 属 性 设 置 为“ 第 0 封 邮 件, 总 计 0 封 邮 件”。 该 控 件 用 于 显 示 接 收 的 邮 件 总 数 以 及 当 前 正 在 处 理 第 几 封 邮 件。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:保存列表框的内容-保存列表框内容为文本文件

下一篇:VB6制作Win98风格的工具栏