

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用本地 SMTP 服务器和数据库邮件发送 Amazon RDS for SQL Server 数据库实例通知
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail"></a>

*Nishad Mankar，Amazon Web Services*

## Summary
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-summary"></a>

[数据库邮件](https://learn.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail?view=sql-server-ver16)（Microsoft 文档）使用简单邮件传输协议 (SMTP) 服务器从 Microsoft SQL Server 数据库发送电子邮件，例如通知或警报。Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server 文档提供了使用 Amazon Simple Email Service (Amazon SES) 作为数据库邮件的 SMTP 服务器的说明。有关详细信息，请参阅[在 Amazon RDS for SQL Server 上使用 Database Mail](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html)。作为替代配置，此模式说明了如何使用本地 SMTP 服务器作为邮件服务器，将数据库邮件配置为从 Amazon RDS for SQL Server 数据库（DB）实例发送电子邮件。

## 先决条件和限制
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-prereqs"></a>

**先决条件**
+ 一个有效的 Amazon Web Services account
+ 运行标准版或企业版 SQL Server 的 Amazon RDS 数据库实例
+ 本地 SMTP 服务器的 IP 地址或主机名
+ 入站[安全组规则](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html#working-with-security-group-rules)，允许从 SMTP 服务器的 IP 地址连接到 Amazon RDS for SQL Server 数据库实例
+ 您的本地网络与包含 Amazon RDS 数据库实例的虚拟私有云（VPC）之间的连接，例如 [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) 连接

**限制**
+ 不支持 SQL Server Express 版。
+ 有关限制的更多信息，请参阅 Amazon RDS 文档中的*在 Amazon RDS for SQL Server 上使用数据库邮件*中的[限制](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport.Limits)。

**产品版本**
+ [RDS 中支持的 SQL Server 版本](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport)的标准版和企业版

## 架构
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-architecture"></a>

**目标技术堆栈**
+ Amazon RDS for SQL Server 数据库实例
+ Amazon Route 53 转发规则
+ 数据库邮件
+ 本地 SMTP 服务器
+ Microsoft SQL Server Management Studio (SSMS)

**目标架构**

下图显示了此模式的目标架构。当发生启动有关数据库实例的通知或警报的事件或操作时，Amazon RDS for SQL Server 使用数据库邮件发送电子邮件通知。数据库邮件通过本地 SMTP 服务器发送电子邮件。

![\[Amazon RDS for SQL Server 使用本地 SMTP 服务器向用户发送电子邮件通知。\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/e5599724-43cf-4fe1-8c5a-8fca1a424993/images/47efb12f-3505-4a60-ac43-194a176e71c8.png)


## 工具
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-tools"></a>

**Amazon Web Services**
+ [Amazon Relational Database Service (Amazon RDS) for Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) 可帮助您在 Amazon Web Services Cloud 中设置、操作和扩展 SQL Server 关系数据库。
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) 是一种可用性高、可扩展性强的 DNS Web 服务。

**其他工具**
+ [数据库邮件](https://learn.microsoft.com/en-us/sql/relational-databases/database-mail/database-mail)是一种从 SQL Server 数据库引擎向用户发送电子邮件（例如通知和警报）的工具。
+ [Microsoft SQL Server Management Studio (SSMS)](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms) 是一款用于管理 SQL Server 的工具，包括访问、配置和管理 SQL Server 组件。在这种模式中，您可使用 SSMS 运行 SQL 命令在 Amazon RDS for SQL Server 数据库实例上设置数据库邮件。 

## 操作说明
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-epics"></a>

### 启用与本地 SMTP 服务器的网络连接
<a name="enable-network-connectivity-with-the-on-premises-smtp-server"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 从 RDS 数据库实例中删除多可用区。 | 如果您使用的是多可用区 RDS 数据库实例，请将多可用区实例转换为单可用区实例。完成配置数据库邮件后，您会将数据库实例转换回多可用区部署。然后，主节点和辅助节点都具有数据库邮件配置。有关说明，请参阅[从 Microsoft SQL Server 数据库实例删除多可用区](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerMultiAZ.html#USER_SQLServerMultiAZ.Removing)。 | 数据库管理员 | 
| 为本地 SMTP 服务器上的 Amazon RDS 端点或 IP 地址创建允许列表。 | SMTP 服务器位于 AWS 网络之外。在本地 SMTP 服务器上，创建一个允许列表，允许服务器与 Amazon RDS 实例或托管在 Amazon RDS 上的亚马逊弹性计算云 (Amazon EC2) 实例的出站终端节点或 IP 地址进行通信。此进程因组织而异。有关数据库实例端点的更多信息，请参阅[查找数据库实例端点和端口号](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#sqlserver-endpoint)。 | 数据库管理员 | 
| 移除端口 25 限制。 | 默认情况下，AWS 限制 EC2 实例上的端口 25。要取消端口 25 限制，请执行以下操作：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html) | 常规 AWS | 
| 添加 Route 53 规则，以解析 SMTP 服务器 DNS 查询。 | 使用 Route 53 解析您的 AWS 资源和本地 SMTP 服务器之间的 DNS 查询。您必须创建将 DNS 查询转发到 SMTP 服务器域的规则，例如 `example.com`。有关说明，请参阅 Route 53 文档中的[创建转发规则](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-rules-managing.html#resolver-rules-managing-creating-rules)。 | 网络管理员 | 

### 在 Amazon RDS for SQL Server 数据库实例上设置数据库邮件
<a name="set-up-database-mail-on-the-amazon-rds-for-sql-server-db-instance"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 启用数据库邮件。 | 为数据库邮件创建参数组，将 `database mail xps` 参数设置为 `1`，然后将数据库邮件参数组与目标 RDS 数据库实例关联。有关说明，请参阅 Amazon RDS 文档中的[启用数据库邮件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html#SQLServer.DBMail.Enable)。不要继续进入到这些说明中的*配置数据库邮件*部分。本地 SMTP 服务器配置与 Amazon SES 不同。 | 数据库管理员 | 
| 连接到数据库实例。 | 从堡垒主机，使用 Microsoft SQL Server Management Studio (SSMS) 连接至 Amazon RDS for SQL Server 数据库实例。有关说明，请参阅[连接到运行 Microsoft SQL Server 数据库引擎的数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html)。如果您遇到任何错误，请参阅[相关资源](#send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-resources)部分中的连接疑难解答参考资料。 | 数据库管理员 | 
| 创建配置文件。 | 在 SSMS 中，输入以下 SQL 语句创建数据库邮件配置文件。替换以下值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)有关此存储过程及其参数的更多信息，请参阅 Microsoft 文档中的 [sysmail\$1add\$1profile\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql)。<pre>EXECUTE msdb.dbo.sysmail_add_profile_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @description = 'Profile used for sending outgoing notifications using OM SMTP Server.';</pre> | 数据库管理员 | 
| 在个人资料中添加主体。 | 输入以下 SQL 语句，将公共或私有主体添加到数据库邮件配置文件中。*委托人*指可以请求获取 SQL Server 资源的实体。替换以下值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)有关此存储过程及其参数的更多信息，请参阅 Microsoft 文档中的 [sysmail\$1add\$1principalprofile\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql)。<pre>EXECUTE msdb.dbo.sysmail_add_principalprofile_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @principal_name = 'public',<br /> @is_default = 1 ;</pre> | 数据库管理员 | 
| 创建账户。 | 输入以下 SQL 语句创建数据库邮件账户。替换以下值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)有关此存储过程及其参数的更多信息，请参阅 Microsoft 文档中的 [sysmail\$1add\$1account\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql)。<pre>EXECUTE msdb.dbo.sysmail_add_account_sp<br /> @account_name = 'SQL Alerts account',<br /> @description = 'Database Mail account for sending outgoing notifications.',<br /> @email_address = 'xyz@example.com',<br /> @display_name = 'xyz@example.com',<br /> @mailserver_name = 'test_smtp.example.com',<br /> @port = 25,<br /> @enable_ssl = 1,<br /> @username = 'SMTP-username',<br /> @password = 'SMTP-password';</pre> | 数据库管理员 | 
| 将账户添加到配置文件中。 | 输入以下 SQL 语句以将数据库邮件账户添加到数据库邮件配置文件中。替换以下值：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail.html)有关此存储过程及其参数的更多信息，请参阅 Microsoft 文档中的 [sysmail\$1add\$1profileaccount\$1sp](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql)。<pre>EXECUTE msdb.dbo.sysmail_add_profileaccount_sp<br /> @profile_name = 'SQL Alerts profile',<br /> @account_name = 'SQL Alerts account',<br /> @sequence_number = 1;</pre> | 数据库管理员 | 
| （可选）向 RDS 数据库实例添加多可用区。 | 如果要添加带数据库镜像 (DBM) 或始终开启可用性组 (AGs) 的多可用区，请参阅向 M [icrosoft SQL Server 数据库实例添加多](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerMultiAZ.html#USER_SQLServerMultiAZ.Adding)可用区中的说明。 | 数据库管理员 | 

## 相关的资源
<a name="send-notifications-for-an-amazon-rds-for-sql-server-database-instance-by-using-an-on-premises-smtp-server-and-database-mail-resources"></a>
+ [在 Amazon RDS for SQL Server 上使用数据库邮件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html)（Amazon RDS 文档）
+ [处理文件附件](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.DBMail.html#SQLServer.DBMail.MAZ)（Amazon RDS 文档）
+ [排除与 SQL Server 数据库实例的连接故障](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting)（Amazon RDS 文档）
+ [无法连接到 Amazon RDS 数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Connecting)（Amazon RDS 文档）