第 12 章 安 装 SQL Mail

SQL Mail 是 使 用 邮 件 应 用 程 序 界 面 的 邮 件 服 务 , 该 应 用 程 序 界 面 能 够 使 用SQL Server 收 发 电 子 邮 件 消 息 。 SQL Mail 使 用 扩 展 的 存 储 过 程 , 该 过 程 是 由Microsoft SQL Server 安 装 程 序 带 来 的 。

W indows NT 消 息 服 务

该 NT 服 务 器 具 有 内 在 的 消 息 服 务 功 能 , 与 SQL Server 一 起 工 作 并 能 收 发电 子 邮 件 。SQL Mail 常 常 与 Microsoft Outlook 、Microsoft Exchange 、Microsoft Windows NT Mail 或 其 它 MAPI 一 道 用 来 收 发 电 子 邮 件 。 当 安 装 Windows NT 时 , 也 许 没 有 安 装 NT 消 息 。 如 果 原 先 没 有 安 装 的 话 , 当 需 要 安 装 SQL Mail 时 , 必须 首 先 安 装 NT Messaging Service 步 骤 是 :

  1. 以 在 本 地 机 上 正 在 运 行 SQL Server 服 务 的 帐 号 登 录 NT 。

  2. 在 Inbox 图 标 上 双 击 , 消 息 出 现 , 问 是 否 安 装 Windows NT

    Messaging , 这 表 示 是 否 安 装 。

  3. 需 要 访 问 NT 安 装 CD ROM 驱 动 器 和 I386 目 录 。 如 果 系 统 提 示 改 写 新 文

件 , 回 答 否 定 。

为 了 使 SQL Mail 工 作 , MAPI 界 面 需 要 在 Windows NT 服 务 器 上 安 装 一 客 户邮 件 程 序 。 Microsoft Outlook 或 Microsoft Exchange 与 SQL Mail 一 道 工 作并 能 安 装 在 Widnows NT 服 务 器 上 创 建 一 邮 件 客 户 。

SQL M ail 的 安 装

为 了 使 SQL Mail 在 Microsoft SQL Server 上 成 功 地 运 行 , 必 须 在 服 务 器上 安 装 一 客 户 邮 件 应 用 程 序 。 另 外 , 位 于 另 一 个 服 务 器 上 的 Mail 邮 局 必 须 是 可用 的 。最 后 必 须 在 SQL Server 启 动 帐 号 下 ,启 动 Mail 客 户 。这 意 味 着 SQL Server 必 须 设 置 使 用 邮 件 帐 号 ,该 帐 号 既 与 MSSQL Server 启 动 帐 号 相 同 又 是 一 个 MSSQL Server 启 动 帐 号 所 拥 有 的 Exchange 邮 箱 。

SQL Mail 先 决 条 件

在 开 始 配 置 和 安 装 SQL Mail 之 前 , 了 解 SQL Mail 的 先 决 条 件 是 有 用 的 。条 件 1 : 一 个 安 装 在 Microsoft SQL Server 计 算 机 上 的 邮 件 客 户 程 序 。条 件 2 : 一 个 SQL Server 启 动 帐 号 所 具 有 的 Exchange 邮 箱 。

条 件 3 : 一 个 具 有 SQL Server 服 务 启 动 帐 号 功 能 的 NT 帐 号 , 该 帐 号 拥 有

交 换 邮 箱 。

条 件 4 : Exchange 邮 件 服 务 器 的 名 称 。

NT 帐 号

将 需 要 一 个 NT 帐 号 , 该 帐 号 拥 有 Exchange 交 换 邮 箱 并 能 被 用 作 SQL Server 启 动 帐 号 。 在 输 入 下 列 命 令 提 示 符 后 可 以 运 行 服 务 管 理 器 来 观 察 SQL Server 启动 帐 号 :

srvmgr\\ servername

当 服 务 管 理 器 启 动 时 , 选 择 Computer / Services 并 且 从 如 图 12.1 服 务 列表 中 选 择 MSSQL Server 服 务 。 按 下 Starup 按 钮 可 看 见 如 图 12.2 所 示 的 用 来 启动 MSSQL Server 的 帐 号 。 使 该 Windows NT 帐 号 成 为 邮 箱 的 所 有 者 。

第 12 章 安 装 SQL Mail - 图1

图 12.1 服务列表

第 12 章 安 装 SQL Mail - 图2

图 12.2MSSQLServer 启动 Windows NT 帐号

Exchange 邮 箱

让 我 们 在 SQL Server 计 算 机 上 使 用 Microsoft Exchange 邮 件 程 序 并 由 邮件 管 理 员 程 序 启 动 , 使 邮 箱 所 有 者 成 为 能 启 动 SQL Server 的 相 同 的 NT 帐 号 。对 邮 箱 的 共 有 者 来 说 , 这 是 可 能 的 。 邮 箱 的 用 户 也 能 被 设 置 成 在 SQL Server 上决 定 SQL Mail 的 数 据 库 管 理 器 。

安 装 M icrosoft Exchange 邮 件 客 户

如 果 选 择 使 用 Microsoft Exchange 作 为 邮 件 的 客 户 , 将 可 能 想 要 邮 件 的 拥有 者 是 启 动 SQL Server 的 相 同 的 NT 帐号 ( 它 对 有 邮 箱 的 共 有 者 是 可 能 的 并 且 邮箱 的 用 户 能 被 设 置 是 数 据 库 管 理 员 ) , 以 下 是 在 SQL Server 计 算 机 上 安 装 作 为客 户 的 Exchange 的 步 骤 :

  1. 在 本 地 SQL Server 计 算 机 上 登 录 NT 作 为 启 动 SQL Server 服 务 的 帐 号 。2. 通 过 运 行 邮 件 程 序 setup.exe , 在 SQL Server 上 安 装 Exchange Mail

Client 。

  1. 选 择 典 型 安 装 模 式 并 按 下 该 按 钮 。

  2. 当 问 到 名 称 时 , 输 入 该 Exchange 邮 箱 的 名 称 。 该 邮 箱 由

    SQL Server 服务 所 拥 有 , 启 动 Windows NT Acoount 。

  3. 完成 Exchange 客 户 安 装 。

  4. 开 始 双 击 该 图 标 , 该 图 标 是 由 邮 件 客 户 的 安 装 程 序 在

    该 台 面 上 创 立 的 或者 是 从 NT 菜 单 中 选 择 的 。

  5. 删 除 非 Microsoft Exchange Server 的 任 何 服 务 。

  6. 继 续 通 过 该 屏 幕 在 远 程 使 用 ( 选 择 不 ) 和 个 人 地 址 。

  7. 当 提 示 在 NT 启 动 时 允 许 自 动 启 动 Exchange 时 选 择 Do Not

    Add 。10. 完 成 安 装 。

11. 开 始 Exchange 。 选 择 Tools / Options 和 Send 标 签 。 清 除 Sent Items Folder 复 选 框 中 该

项 目 的 拷 贝 副 本 。 这 可 以 使 你 避 免 在 文 件 夹 满 时 不 得 不 清 除 该 收 送 项 目 。12. 回 到 Inbox 并 将 邮 件 送 去 校 验 安 装 。

13. 选 择 File / Exit 并 注 销 该 Exchange 客 户 程 序 。14. 使 用 企 业 管 理 器 设 置 属 性 。

  1. 检 查 Auto Start Mail Client 复 选 框 ; 在 图 12.3 所 示 的 Profile 名区 域 输 入 邮 箱 名 称 。

第 12 章 安 装 SQL Mail - 图3

图 12.3SQL Mail 属性窗口

  1. 停 机 , 然 后 重 新 启 动 SQL Server 。

  2. 在 启 动 SQL Mail 时 , 检 查 SQL Server 的 错 误 日 志 。

如 果 SQL Server 启 动 失 败 , 或 者 在 SQL Server 错 误 日 志 上 发 现 错 误 , 下一 节 介 绍 如 何 解 决 这 个 问 题 。

解 决 SQL Mail 启 动 失 败 的 技 巧

如 果 SQL Server 没 有 启 动 , 核 对 下 列 各 项 : 1. 在 SQL Server 错 误 日 志 中 的 MAPI 错 误 。

  1. SQL Server 是 否 运 行 在 拥 有 邮 箱 的 NT 帐 号 下 ?

  2. SQL Server 邮 件 登 录 的 安 装 程 序 对 SQL Server 和 SQL Server

    Agent 是 正 确 的 吗 ?

  3. 运 行 在 SQL Server 上 交 换 是 在 SQL Server 服 务 启 动 帐 号 下

    启 动 的 吗 ? 2. 如果 SQL Mail 停 止 应 答 , 循 环 SQL Server 。

3. 通 过 在 桌 面 上 双 击 inbox 图 标 , 保 证 Mail Messaging 服 务 程 序 是 安 装

在 Widnows NT 上 。 如 果 问 是 否 想 安 装 该 服 务 程 序 , 说 明 Windows NT Messaging 是 没 有 安 装 。 因 此 , 着 手 进 行 安 装 。

SQL Mail 扩 展 存 储 过 程

扩 展 存 储 过 程 是 被 用 在 SQL Mail 包 含 XP 启 动 邮 件 , XP 终 止 邮 件 , XP 发 送邮 件 , XP 读 邮 件 , XP 分 理 邮 件 , XP 查 找 下 一 个 信 息 和 XP 删 除 邮 件 。 只 有 系 统管 理 员 能 够 执 行 SQL Mail 扩 展 存 储 过 程 ; 然 而 系 统 管 理 员 允 许 其 他 用 户 执 行 扩展 存 储 过 程 。 关 于 以 上 所 列 的 SQL Mail 扩 展 存 储 过 程 的 使 用 的 更 多 的 信 息 参 阅第 23 章 “ 系 统 存 储 过 程 ”。

SQL Mail 的 启 动 和 终 止

有 两 种 不 同 的 方 法 来 启 动 和 终 止 SQL Mail 。 可 以 使 用 企 业 管 理 器 或 执 行 为这 个 目 的 提 供 的 SQL Server 的 扩 展 存 储 过 程 。 也 能 在 企 业 管 理 器 Tools 菜 单 中选 择 Query Analyzer 并 在 Query Analyzer 窗 口 中 使 用 XP 启 动 邮 件 或 XP 终 止邮 件 扩 展 存 储 过 程 。

在 Query Analyzer 窗 口 中 , 下 列 命 令 可 以 启 动 SQL Mail :

xp_startmail G O

命 令 在 Query Analyzer 窗 口 中 可 以 终 止 SQL Mail 。

xp_stopmail G O

使 用 企 业 管 理 器 , 扩 展 该 服 务 器 并 且 在 SQL Mail 上 右 击 快 捷 菜 单 将 允 许 选

择 启 动 或 终 止 SQL Mail 。

从 SQL Server 中 发 送 邮 件

可 以 从 SQL Mail 中 发 送 一 条 简 单 的 消 息 、 一 查 询 结 果 集 或 一 个 附 件 。 使 用位 于 企 业 管 理 器 的 Tools 菜 单 中 的 Query Analyzer 窗 口 中 发 出 下 列 命 令 :

xp_sendmail email_name ,′ Any message you wish to send ′

Mail Sent 消息将出现,并在电子邮件名称输入盒中出现该电子邮件。

关 于 更 多 的 有 关 使 用 SQL Mail 扩 展 存 储 过 程 的 信 息 参 阅 第 23 章 “ 系 统 存 储 过程 ”。 SQL Mail 也 具 有 邮 寄 查 询 结 果 的 能 力 。

SQL M ail 和 SQL Server Agent

当 发 生 报 警 时 或 当 一 预 定 任 务 完 成 或 失 败 时 , 如 果 想 使 用 SQL Mail 与 SQL Server Agent 一 起 工 作 , 以 便 通 过 电 子 邮 件 通 知 数 据 库 管 理 员 , 必 须 为 SQL Server Agent 设 置 SQL 邮 件 的 配 置 。 为 了 完 成 这 个 任 务 , 在 企 业 管 理 器 中 扩 展该 服 务 器 , 并 选 择 SQL Server Agent 。 在 SQL Server 上 右 击 , 然 后 选 择Properties( 参 见 图 12.4) 。在 General 标 签 中 选 择 SQL Mail 按 钮 , 输 入 NT 帐号 名 称 , 该 名 称 与 MSSQL Server 服 务 启 动 帐 号 相 同 。 如 果 正 在 使 用 带 有 SQL Server 的 SQL Mail , 你 可 以 设 置 SQL Mail 自 动 启 动 , 每 当 SQL Server Agent 服 务 被 启 动 的 时 候 — — 甚 至 当 SQL Server Agent 停 止 ,然 后 重 新 启 动 时 SQL Mail

便 自 动 启 动 。 消 息 能 被 发 送 到 扩 展 存 储 过 程 能 被 调 用 的 任 何 地 方 , 例 如 : 从 一个 触 发 器 或 存 储 过 程 调 用 , 或 从 脚 本 文 件 以 内 一 次 调 用 。 当 性 能 阈 值 达 到 的 时候 , SQL Mail 也 能 与 SQL Server Profiler 一 起 用 于 发 送 邮 件 。

第 12 章 安 装 SQL Mail - 图4

图 12.4SQL Server Agent 在企业管理器的属性

该 SQL Server Agent( 先 前 所 知 的 SQL Executive) 已 经 被 提 高 到 能 充 分 利用 安 装 在 SQL Server 上 的 SQL Mail 了 。 参 阅 第 4 章 “ SQL Server Agent ” 可以 获 得 关 于 如 何 同 时 使 用 SQL ServerAgent 和 SQL Mail 的 详 细 数 据 , 在 一 报 警或 作 业 失 败 的 事 件 中 通 知 用 户 。