本文介绍如何使用数据库邮件配置向导启用和配置 数据库邮件 ,并使用模板创建数据库邮件配置脚本。

使用 DatabaseMail XPs 选项可以在此服务器上启用数据库邮件。 有关详细信息,请参阅 数据库邮件 XP 服务器配置选项 参考文章。

限制和局限

在任何数据库中启用 SQL Server Service Broker 都需要数据库锁。 如果在 中 msdb 停用 Service Broker,若要启用数据库邮件,请先停止SQL Server 代理以便 Service Broker 可以获取所需的锁。

若要配置数据库邮件,你必须是 sysadmin 固定服务器角色的成员。 若要发送包含数据库邮件的电子邮件,您必须是 数据库中 DatabaseMailUserRole 数据库角色 msdb 的成员。

使用数据库邮件配置向导

使用向导配置数据库邮件

以下步骤使用 SQL Server Management Studio (SSMS)。 在 aka.ms/ssms 下载最新版本的 SSMS。

  • 在 对象资源管理器 中,展开要在其中配置数据库邮件实例的节点。

  • 展开 “管理” 节点。

  • 右键单击“ 数据库邮件 ”,然后选择“ 配置数据库邮件 ”。

  • 完成向导对话框。

  • “欢迎”页
  • “选择配置任务”页
  • “新建帐户”页
  • “管理现有帐户”页
  • “新建配置文件”页
  • “管理现有配置文件”页
  • “将帐户添加到配置文件”页
  • “管理帐户和配置文件”页
  • “管理配置文件安全性”,“公共”选项卡
  • “管理配置文件安全性”,“专用”选项卡
  • “配置系统参数”页
  • “完成向导”页
  • “发送测试电子邮件”页
  • 此页说明配置数据库邮件的步骤。

    不再显示此页 - 选中它,可在以后的显示中跳过此“欢迎”页。

    下一步 - 继续到“选择配置任务” 页。

    取消 - 在不配置数据库邮件的情况下终止向导。

    选择配置任务

    使用 “选择配置任务” 页,指示每次使用向导时完成的任务。 如果您在完成向导前改变了主意,请使用 “上一步” 按钮返回此页并选择其他任务。

    如果尚未启用数据库邮件,则会收到消息: 数据库邮件功能不可用。是否启用此功能? 响应 , 等效于使用系统存储过程的 数据库邮件 XP 选项 sp_configure 启用数据库邮件。

    通过执行以下任务来设置数据库邮件
    执行第一次设置数据库邮件所需的所有任务。 此选项包含所有其他三个选项。

    管理数据库邮件帐户和配置文件
    创建新的数据库邮件帐户和配置文件,或者查看、更改或删除现有数据库邮件帐户和配置文件。

    管理配置文件安全性
    配置对数据库邮件配置文件具有访问权限的用户。

    查看或更改系统参数
    配置数据库邮件系统参数,例如附件的最大文件大小。

    “新建帐户”页

    使用此页可以创建新的数据库邮件帐户。 数据库邮件帐户包含向 SMTP 服务器发送电子邮件所需的信息。

    数据库邮件帐户包含SQL Server用于向 SMTP 服务器发送电子邮件的信息。 每个帐户均包含一个电子邮件服务器的信息。

    数据库邮件帐户仅用于数据库邮件。 数据库邮件帐户不对应于 SQL Server 帐户或 Microsoft Windows 帐户。 可以使用SQL Server数据库引擎的凭据、提供的其他凭据或匿名发送数据库邮件。 使用基本身份验证时,数据库邮件帐户中的用户名和密码仅用于在电子邮件服务器中进行身份验证。 帐户不需要对应于运行SQL Server的SQL Server用户或计算机上的用户。

    键入新帐户的名称。

    键入帐户的说明。 说明是可选的。

    电子邮件地址
    键入帐户电子邮件地址的名称。 这是发送电子邮件的电子邮件地址。 例如,SQL Server 代理的帐户可能会从地址 SqlAgent@Adventure-Works.com发送电子邮件。

    键入由此帐户发送的电子邮件上显示的名称。 显示名称为可选项。 这是由此帐户发送的邮件上显示的名称。 例如,SQL Server 代理的帐户可能会在电子邮件上显示名称“SQL Server 代理自动邮件程序”。

    答复电子邮件
    键入用于答复从此帐户发送的电子邮件的电子邮件地址。 答复电子邮件为可选项。 例如,给 SQL Server 代理的帐户的回信可能会发送给数据库管理员 danw@Adventure-Works.com的计算机上的用户对应。

    服务器名称
    键入此帐户发送电子邮件所用的 SMTP 服务器的名称或 IP 地址。 这通常采用类似于 smtp 的格式。 <>your_company.com 。 如需相关帮助,请询问您的邮件管理员。

    键入此帐户的 SMTP 服务器的端口号。 大多数 SMTP 服务器使用端口 25 或 587 或端口 465 进行 SSL 连接。

    此服务器要求安全连接(SSL)
    使用安全套接字层加密通信。

    使用数据库引擎服务凭据的 Windows 身份验证
    使用为 SQL Server 数据库引擎服务配置的凭据连接到 SMTP 服务器。

    基本身份验证
    指定 SMTP 服务器要求的用户名和密码。

    键入数据库邮件用于登录 SMTP 服务器的用户名。 如果 SMTP 服务器要求基本身份验证,则需要提供用户名。

    键入数据库邮件用于登录到 SMTP 服务器的密码。 如果 SMTP 服务器要求基本身份验证,则需要提供密码。

    再次输入密码以进行确认。 如果 SMTP 服务器要求基本身份验证,则需要提供密码。

    匿名身份验证
    在没有登录凭据的情况下,将邮件发送至 SMTP 服务器。 如果 SMTP 服务器不需要身份验证,请使用此选项。

    “管理现有帐户”页

    使用此页可以管理现有数据库邮件帐户。

    选择要查看、更新或删除的帐户。

    删除选定的帐户。 必须从关联的配置文件中删除此帐户,或者删除此类配置文件,才能够删除所选帐户。

    查看或更新帐户的说明。 说明是可选的。

    电子邮件地址
    查看或更新帐户电子邮件地址的名称。 这是发送电子邮件的电子邮件地址。 例如,Microsoft SQL Server 代理的帐户可能会通过地址 SqlAgent@Adventure-Works.com 的计算机上的用户对应。

    查看或更新由此帐户发送的电子邮件上显示的名称。 显示名称为可选项。 这是由此帐户发送的邮件上显示的名称。 例如,SQL Server 代理的帐户可能会在电子邮件上显示名称 SQL Server Agent Automated Mailer

    答复电子邮件
    查看或更新电子邮件地址,该地址是答复由此帐户发送的电子邮件所用到的地址。 答复电子邮件为可选项。 例如,给 SQL Server 代理的帐户的回信可能会发送给数据库管理员 danw@Adventure-Works.com 的计算机上的用户对应。

    服务器名称
    查看或更新该帐户发送电子邮件所用的 SMTP 服务器的名称。 这通常采用类似于 smtp 的格式。<>your_company. 如需相关帮助,请询问您的邮件管理员。

    查看或更新此帐户的 SMTP 服务器的端口号。 大多数 SMTP 服务器使用端口 25 或 587 或端口 465 进行 SSL 连接。

    此服务器要求安全连接(SSL)
    使用安全套接字层加密通信。

    使用数据库引擎服务凭据的 Windows 身份验证
    使用为 SQL Server 数据库引擎服务配置的凭据连接到 SMTP 服务器。

    基本身份验证
    指定 SMTP 服务器要求的用户名和密码。

    查看或更新数据库邮件用于登录 SMTP 服务器的用户名。 如果 SMTP 服务器要求基本身份验证,则需要提供用户名。

    更改数据库邮件用于登录到 SMTP 服务器的密码。 如果 SMTP 服务器要求基本身份验证,则需要提供密码。

    再次输入密码以进行确认。 如果 SMTP 服务器要求基本身份验证,则需要提供密码。

    匿名身份验证
    在没有登录凭据的情况下,将邮件发送至 SMTP 服务器。 如果 SMTP 服务器不需要身份验证,请使用此选项。

    “新建配置文件”页

    使用此页可以创建数据库邮件配置文件。 数据库邮件配置文件是数据库邮件帐户的集合。 在无法访问电子邮件服务器时,配置文件通过提供其他的数据库邮件帐户来提高可靠性。 至少需要一个数据库邮件帐户。 有关在配置文件中设置数据库邮件帐户的优先级的详细信息,请参阅 Create a Database Mail Profile

    使用 “上移” “下移” 按钮可以更改数据库邮件帐户的使用顺序。 此顺序由一个名为序列号的值来确定。 “上移” 减小序列号, “下移” 增大序列号。 序列号可以确定数据库邮件使用配置文件中帐户的顺序。 对于新的电子邮件,数据库邮件将从序列号最小的帐户开始。 如果该帐户失败,数据库邮件使用序列号为下一个最高的帐户,等等,直到数据库邮件成功发送消息,或者序列号最高的帐户失败。 如果具有最高序列号的帐户失败,则数据库邮件将在一段时间内(该时间在数据库邮件的 AccountRetryDelay 参数中配置)暂停发送邮件,之后从最低序列号开始重新尝试发送邮件。 使用数据库邮件的 AccountRetryAttempts 参数,可以配置外部邮件进程使用指定配置文件中的每个帐户尝试发送电子邮件的次数。 可以在数据库邮件配置向导的 “配置系统参数” 页上配置 AccountRetryDelay AccountRetryAttempts 参数。

    配置文件名称
    键入新配置文件的名称。 将使用此名称创建配置文件。 不要使用现有配置文件的名称。

    若要在 Azure SQL 托管实例 中使用 SQL 代理作业发送电子邮件,SQL Server 代理只能使用一个数据库邮件配置文件,并且必须将其称为 AzureManagedInstance_dbmail_profile 。 有关详细信息和示例脚本,请参阅 Azure SQL 托管实例 SQL 代理作业通知

    键入配置文件的说明。 说明是可选的。

    SMTP 帐户
    为配置文件选择一个或多个帐户。 优先级设置数据库邮件使用帐户的顺序。 如果未列出任何帐户,则必须选择“ 添加” 才能继续,并添加新的 SMTP 帐户。

    向配置文件中添加帐户。

    从配置文件中删除所选帐户。

    提高选定帐户的优先级。

    降低选定帐户的优先级。

    “管理现有配置文件”页

    使用此页可以管理现有的数据库邮件配置文件。 数据库邮件配置文件是数据库邮件帐户的集合。 在无法访问电子邮件服务器时,配置文件通过提供其他的数据库邮件帐户来提高可靠性。 至少需要一个数据库邮件帐户。 有关在配置文件中设置数据库邮件帐户的优先级的详细信息,请参阅 Create a Database Mail Profile

    使用 “上移” “下移” 按钮可以更改数据库邮件帐户的使用顺序。 此顺序由一个名为序列号的值来确定。 “上移” 减小序列号, “下移” 增大序列号。 序列号可以确定数据库邮件使用配置文件中帐户的顺序。 对于新的电子邮件,数据库邮件将从序列号最小的帐户开始。 如果该帐户失败,数据库邮件使用序列号为下一个最高的帐户,等等,直到数据库邮件成功发送消息,或者序列号最高的帐户失败。 如果具有最高序列号的帐户失败,则数据库邮件将在一段时间内(该时间在数据库邮件的 AccountRetryDelay 参数中配置)暂停发送邮件,之后从最低序列号开始重新尝试发送邮件。 使用数据库邮件的 AccountRetryAttempts 参数,可以配置外部邮件进程使用指定配置文件中的每个帐户尝试发送电子邮件的次数。 可以在数据库邮件配置向导的 “配置系统参数” 页上配置 AccountRetryDelay AccountRetryAttempts 参数。

    配置文件名称
    选择要管理的配置文件的名称。

    删除所选配置文件。 系统将提示你选择 “是 ”以删除所选配置文件并失败任何未发送的邮件,或选择“ ”以仅当没有未发送邮件时才删除所选配置文件。

    查看或更改所选配置文件的说明。 说明是可选的。

    SMTP 帐户
    为配置文件选择一个或多个帐户。 故障转移优先级设置了在进行故障转移时数据库邮件使用帐户的顺序。

    向配置文件中添加帐户。

    从配置文件中删除所选帐户。

    提高所选帐户的故障转移优先级。

    降低所选帐户的故障转移优先级。

    Priority
    查看帐户的当前故障转移优先级。

    查看帐户的名称。

    E-mail Address
    查看帐户的电子邮件地址。

    “将帐户添加到配置文件”页

    使用此页可选择要添加到配置文件的帐户。 从“ 帐户名称 ”框中选择现有帐户,或选择“ 新建帐户 ”。

    选择要添加到配置文件的帐户的名称。

    电子邮件地址
    查看所选帐户的电子邮件地址。 无法从此页面更改电子邮件地址。 若要更改该帐户的电子邮件地址,请返回到该向导的主页,再选择“管理数据库邮件帐户和配置文件” 选项。

    服务器名称
    查看所选帐户的邮件服务器名称。 无法从此页面更改服务器名称。 若要更改该帐户的服务器名称,请返回到该向导的主页,再选择 “管理数据库邮件帐户和配置文件” 选项。

    “新建帐户”
    创建新帐户。

    “管理帐户和配置文件”页

    使用此页可选择用于管理配置文件或帐户的任务。

    创建新帐户
    创建新帐户。

    查看、更改或删除现有帐户
    管理或删除现有帐户。

    创建新配置文件
    创建新的配置文件。

    查看、更改或删除现有配置文件。 您也可以管理与该配置文件关联的帐户。
    更新或删除现有配置文件。 使用此选项,您还可以管理与该配置文件关联的帐户。

    管理配置文件安全性,公共选项卡

    使用此页可配置公共配置文件。

    配置文件可以为公共配置文件或专用配置文件。 只有特定用户或角色才能访问专用配置文件。 公共配置文件允许有权访问邮件主机数据库的任何用户或角色 ( msdb ) 使用该配置文件发送电子邮件。

    配置文件可以是默认的配置文件。 在这种情况下,用户或角色可以使用该配置文件发送电子邮件,而无需显式指定配置文件。 如果发送电子邮件的用户或角色具有默认的专用配置文件,则数据库邮件将使用该配置文件。 如果用户或角色没有默认的专用配置文件, sp_send_dbmail 请使用数据库的默认公共配置文件 msdb 。 如果用户或角色没有默认的专用配置文件,并且数据库没有默认的公共配置文件, sp_send_dbmail 则返回错误。 仅可以将一个配置文件标记为默认配置文件。

    选择此选项可将指定的配置文件转为公共配置文件。

    配置文件名
    显示配置文件的名称。

    若要在 Azure SQL 托管实例 中使用 SQL 代理作业发送电子邮件,SQL Server 代理只能使用一个数据库邮件配置文件,并且必须将其称为 AzureManagedInstance_dbmail_profile 。 有关详细信息和示例脚本,请参阅 Azure SQL 托管实例 SQL 代理作业通知

    默认配置文件
    选择此选项可将指定的配置文件转为默认配置文件。

    仅显示现有的公共配置文件
    选择此选项将仅显示指定数据库中的公共配置文件。

    管理配置文件安全性,专用选项卡

    使用此页可配置专用配置文件。

    配置文件可以为公共配置文件或专用配置文件。 只有特定用户或角色才能访问专用配置文件。 公共配置文件允许有权访问邮件主机数据库的任何用户或角色 ( msdb ) 使用该配置文件发送电子邮件。

    配置文件可以是默认的配置文件。 在这种情况下,用户或角色可以使用该配置文件发送电子邮件,而无需显式指定配置文件。 如果发送电子邮件的用户或角色具有默认的专用配置文件,则数据库邮件将使用该配置文件。 如果用户或角色没有默认的专用配置文件, sp_send_dbmail 请使用数据库的默认公共配置文件 msdb 。 如果用户或角色没有默认的专用配置文件,并且数据库没有默认的公共配置文件, sp_send_dbmail 则返回错误。

    在数据库中选择用户或角色 msdb 的名称。

    选择该用户或角色是否可以访问指定的配置文件。

    配置文件名称
    查看配置文件的名称。

    是默认配置文件
    选择该配置文件是否为该用户或角色的默认配置文件。 每个用户或角色只能有一个默认配置文件。

    仅显示此用户的现有专用配置文件
    选择此选项将仅显示指定的用户或角色可以访问的配置文件。

    AccountRetryAttempts

    使用此页可以指定数据库邮件系统参数。 查看系统参数和每个参数的当前值。 选择某个参数可以在信息窗格中查看其简短说明。

    帐户重试次数
    外部电子邮件进程尝试使用指定配置文件中的每个帐户发送电子邮件的次数。

    帐户重试延迟时间(秒)
    在尝试使用配置文件中的所有帐户传递消息后,外部邮件进程在再次尝试使用所有帐户之前等待的时间(秒)。

    最大文件大小(字节)
    附件的最大大小(以字节为单位)。

    禁止的附件文件扩展名
    不能作为电子邮件附件发送的扩展名的逗号分隔列表。 选择“浏览”按钮 ( ... ) 添加其他扩展。

    数据库邮件可执行文件的最短生存期(秒)
    外部邮件进程保持活动状态的最少时间(以秒为单位)。 只要数据库邮件队列中有电子邮件,该进程就会保持活动状态。 此参数指定了在没有要处理的消息时该进程保持活动状态的时间。

    日志记录级别
    指定数据库邮件日志中要记录的消息。 可能的值包括:

  • 普通 - 仅记录错误

  • 扩展 - 记录错误、警告和信息性消息

  • 详细 - 记录错误、警告、信息性消息、成功消息和其他内部消息。 使用详细日志记录可进行故障排除。

    默认值为“扩展”。

    选择此选项可将该页上的值重置为默认值。

    “完成向导”页

    使用此页可以查看 配置向导数据库邮件 执行的操作。 在完成该向导之前,不会进行任何更改。

    “发送测试电子邮件”页

    使用“从 <instance_name> 发送测试电子邮件 ”页,可以使用指定的数据库邮件配置文件发送电子邮件。 只有 sysadmin 固定服务器角色的成员才可以使用此页发送测试电子邮件。

    数据库邮件配置文件
    从列表中选择数据库邮件配置文件。 这是必填字段。 如果未显示任何配置文件,则没有配置文件,或者你没有对配置文件的权限。 使用 数据库邮件配置向导 可以创建和配置配置文件。 如果没有列出配置文件,请使用数据库邮件配置向导来创建要使用的配置文件。

    电子邮件收件人的地址。 至少需要一个收件人。

    测试电子邮件的主题行。 更改默认主题,以更好地标识电子邮件以进行故障排除。

    测试电子邮件的正文。 更改默认主题,以更好地标识电子邮件以进行故障排除。

    “数据库邮件测试电子邮件” 对话框确认数据库邮件尝试发送的测试消息,并为测试电子邮件提供 mailitem_id 。 请与收件人核实以确定该电子邮件是否已到达。 通常几分钟后即可接收到电子邮件,但是由于网络速度较慢、邮件服务器上的邮件积压或服务器暂时不可用,该电子邮件可能会延迟。 使用 mailitem_id 以进行故障排除。

    发送电子邮件
    测试电子邮件的 mailitem_id

    打开此文档文章。

    使用SQL Server Management Studio模板生成 T-SQL

    创建数据库邮件配置 T-SQL 脚本

  • 在“SQL Server Management Studio (SSMS) ”的“ 视图 ”菜单上,选择“ 模板资源管理器 ”。

  • “模板资源管理器” 窗口中,展开 “数据库邮件” 文件夹。

  • 双击“简单数据库邮件配置” 。 模板将在新的查询窗口中打开。

  • “查询” 菜单上,选择 “指定模板参数的值” 。 将打开 “替换模板参数” 窗口。

  • profile_name account_name SMTP_servername email_address display_name 键入值。 SQL Server Management Studio 将使用您提供的值填充模板。

  • 执行脚本来创建配置。

  • 该脚本不会向任何数据库用户授予对配置文件的访问权限。 因此,默认情况下,只有 sysadmin 固定安全角色的成员才可以使用该配置文件。 有关授予对配置文件的访问权限的详细信息,请参阅 sysmail_add_principalprofile_sp (Transact-SQL)

  • 配置 SQL Server 代理邮件以使用数据库邮件
  • 在 Azure SQL 托管实例中使用 SQL 代理作业自动执行管理任务
  • 配置 SQL Server 代理
  • 常规数据库邮件故障排除步骤
  •