

# 配置数据库邮件
<a name="SQLServer.DBMail.Configure"></a>

您可以执行以下任务来配置数据库邮件：

1. 创建数据库邮件配置文件。

1. 创建数据库邮件账户。

1. 将数据库邮件账户添加到数据库邮件配置文件中。

1. 将用户添加到数据库邮件配置文件中。

**注意**  
如欲配置数据库邮件，请确保您对 `execute` 数据库中的存储过程拥有 `msdb` 权限。

## 创建数据库邮件配置文件
<a name="SQLServer.DBMail.Configure.Profile"></a>

如欲创建数据库邮件配置文件，请使用 [sysmail\_add\_profile\_sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profile-sp-transact-sql) 存储过程。以下示例创建一个名为 `Notifications` 的配置文件。

**如欲创建配置文件**
+ 使用以下 SQL 语句。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profile_sp  
      @profile_name         = 'Notifications',  
      @description          = 'Profile used for sending outgoing notifications using Amazon SES.';
  GO
  ```

## 创建数据库邮件账户
<a name="SQLServer.DBMail.Configure.Account"></a>

如欲创建数据库邮件账户，请使用 [sysmail\_add\_account\_sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-account-sp-transact-sql) 存储过程。以下示例使用 Amazon Simple Email Service 在私有 VPC 中的 RDS for SQL Server 数据库实例上创建一个名为 `SES` 的账户。

使用 Amazon SES 需要以下参数：
+ `@email_address` – 经过 Amazon SES 验证的身份。有关更多信息，请参阅[在 Amazon SES 中验证身份](https://docs.amazonaws.cn/ses/latest/dg/verify-addresses-and-domains.html)。
+ `@mailserver_name` – Amazon SES SMTP 端点。有关更多信息，请参阅[连接到 Amazon SES SMTP 端点](https://docs.amazonaws.cn/ses/latest/dg/smtp-connect.html)。
+ `@username` – Amazon SES SMTP 用户名。有关更多信息，请参阅[获取 Amazon SES SMTP 凭证](https://docs.amazonaws.cn/ses/latest/dg/smtp-credentials.html)。

  请勿使用Amazon Identity and Access Management用户名。
+ `@password` – Amazon SES SMTP 密码。有关更多信息，请参阅[获取 Amazon SES SMTP 凭证](https://docs.amazonaws.cn/ses/latest/dg/smtp-credentials.html)。

**如欲创建账户**
+ 使用以下 SQL 语句。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_account_sp
      @account_name        = 'SES',
      @description         = 'Mail account for sending outgoing notifications.',
      @email_address       = '{{nobody@example.com}}',
      @display_name        = 'Automated Mailer',
      @mailserver_name     = '{{vpce-0a1b2c3d4e5f-01234567.email-smtp.us-west-2.vpce}}.amazonaws.com',
      @port                = 587,
      @enable_ssl          = 1,
      @username            = '{{Smtp_Username}}',
      @password            = '{{Smtp_Password}}';
  GO
  ```
**注意**  
作为安全最佳实践，请指定除此处所示提示以外的凭证。

## 将数据库邮件账户添加到数据库邮件配置文件中
<a name="SQLServer.DBMail.Configure.AddAccount"></a>

如欲将数据库邮件账户添加到数据库邮件配置文件中，请使用 [sysmail\_add\_profileaccount\_sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-profileaccount-sp-transact-sql) 存储过程。以下示例将 `SES` 账户添加到 `Notifications` 配置文件中。

**如欲将账户添加到配置文件中**
+ 使用以下 SQL 语句。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
      @profile_name        = 'Notifications',
      @account_name        = 'SES',
      @sequence_number     = 1;
  GO
  ```

## 将用户添加到数据库邮件配置文件中
<a name="SQLServer.DBMail.Configure.AddUser"></a>

如欲向 `msdb` 数据库委托人授予使用数据库邮件配置文件的权限，请使用 [sysmail\_add\_principalprofile\_sp](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sysmail-add-principalprofile-sp-transact-sql) 存储过程。*委托人*指可以请求获取 SQL Server 资源的实体。数据库委托人必须映射到 SQL Server 身份验证用户、Windows 身份验证用户或 Windows 身份验证组。

以下示例授予对 `Notifications` 配置文件的公有访问权限。

**如欲将用户添加到配置文件**
+ 使用以下 SQL 语句。

  ```
  USE msdb
  GO
  
  EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
      @profile_name       = 'Notifications',  
      @principal_name     = 'public',  
      @is_default         = 1;
  GO
  ```