数据库邮件

数据库邮件是从 SQL Server 数据库引擎中发送电子邮件的企业解决方案。通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件。邮件中可以包含查询结果,还可以包含来自网络中任何资源的文件。数据库邮件旨在实现可靠性、灵活性、安全性和兼容性。

安全说明安全说明

默认情况下,数据库邮件处于非活动状态。要使用数据库邮件,必须使用数据库邮件配置向导、sp_configure 存储过程或者基于策略的管理的外围应用配置功能显式地启用数据库邮件。

可靠性

  • 无需 Microsoft Outlook 或扩展消息处理应用程序编程接口(扩展 MAPI)。数据库邮件使用标准的简单邮件传输协议 (SMTP) 发送邮件。无须在运行 SQL Server 的计算机上安装扩展 MAPI 客户端便可以使用数据库邮件。

  • 进程隔离。若要最大程度上减小对 SQL Server 的影响,传递电子邮件的组件必须在 SQL Server 外围的单独进程中运行。即使外部进程停止或失败,SQL Server 也会继续对电子邮件进行排队。队列中的邮件将在外部进程或 SMTP 服务器联机时发送。

  • 故障转移帐户。数据库邮件配置文件允许您指定多台 SMTP 服务器。如果一台 SMTP 服务器不可用,还可以将邮件传递至其他的 SMTP 服务器。

  • 群集支持。数据库邮件与群集兼容,并且可以完全用于群集中。

伸缩性

  • 后台传递。数据库邮件提供后台(或异步)传递。调用 sp_send_dbmail 发送消息时,数据库邮件可以向 Service Broker 队列中添加请求。存储过程将立即返回。外部电子邮件组件将接收请求并传递电子邮件。

  • 多个配置文件。数据库邮件允许您在一个 SQL Server 实例中创建多个配置文件。另外,您也可以选择发送邮件时数据库邮件使用的配置文件。

  • 多个帐户。每个配置文件都可以包含多个故障转移帐户。您可以配置包含不同帐户的不同配置文件以跨多台电子邮件服务器分发电子邮件。

  • 64 位兼容性。数据库邮件完全可以用于采用 64 位安装的 SQL Server。

安全性

  • 默认为关闭。为了减少 SQL Server 的外围应用,默认情况下,禁用数据库邮件存储过程。

  • 您必须是 msdb 数据库中的 DatabaseMailUserRole 数据库角色的成员,才能发送数据库邮件。

  • 配置文件安全性。数据库邮件增强了邮件配置文件的安全性。您可以选择对数据库邮件配置文件具有访问权限的 msdb 数据库用户或组,并可以为 msdb 中的任一特定用户或所有用户授予访问权限。专用配置文件用于限制指定用户的访问权限。公共配置文件可供数据库中的所有用户使用。

  • 附件大小调控器。数据库邮件增强了对附件文件大小的可配置限制。可以使用 sysmail_configure_sp 存储过程更改该限制。

  • 禁止的文件扩展名。数据库邮件维护一个禁止的文件扩展名列表。用户无法附加扩展名为列表中某个扩展名的文件。使用 sysmail_configure_sp 可以更改此列表。

  • 数据库邮件以 SQL Server 引擎服务帐户运行。若要将来自某一文件夹的文件附加到某一电子邮件,SQL Server 引擎帐户应该有权访问具有该文件的文件夹。

可支持性

  • 集成配置。数据库邮件在 SQL Server 数据库引擎中维护电子邮件帐户的信息。无需在外部客户端应用程序中管理邮件配置文件。数据库邮件配置向导提供了十分方便的界面来配置数据库邮件。您还可以使用 Transact-SQL 创建并维护数据库邮件的配置。

  • 日志记录。数据库邮件将电子邮件活动记录到 SQL Server、Microsoft Windows 应用程序事件日志和 msdb 数据库的表中。

  • 审核。数据库邮件将发送的邮件和附件的副本保留在 msdb 数据库中。您可以轻松地审核数据库邮件的使用情况并检查保留的邮件。

  • 支持 HTML。数据库邮件允许您以 HTML 格式发送电子邮件。

数据库邮件针对最常用的 SQL Mail 功能提供了可靠且高性能的替换功能。数据库邮件设计为与 SMTP 服务器一起使用,并与 Microsoft SMTP 服务器一起测试。有关将存储过程从 SQL Mail 转换到数据库邮件的信息,请参阅如何将存储过程从 SQL Mail 转换为数据库邮件 (Transact-SQL)

注意注意

SQL Server Express 中未提供数据库邮件。