sysmail_add_account_sp (Transact-SQL)

创建一个新的数据库邮件帐户,用于保存有关 SMTP 帐户的信息。

主题链接图标Transact-SQL 语法约定

语法

sysmail_add_account_sp  [ @account_name = ] 'account_name',
    [ @email_address = ] 'email_address' ,
    [ [ @display_name = ] 'display_name' , ]
    [ [ @replyto_address = ] 'replyto_address' , ]
    [ [ @description = ] 'description' , ]
    [ @mailserver_name = ] 'server_name' 
    [ , [ @mailserver_type = ] 'server_type' ]
    [ , [ @port = ] port_number ]
    [ , [ @username = ] 'username' ]
    [ , [ @password = ] 'password' ]
    [ , [ @use_default_credentials = ] use_default_credentials ]
    [ , [ @enable_ssl = ] enable_ssl ]
    [ , [ @account_id = ] account_id OUTPUT ]

参数

  • [ @account_name = ] 'account_name'
    要添加的帐户的名称。account_name 的数据类型为 sysname,无默认值。

  • [ @email_address = ] 'email_address'
    发件人的电子邮件地址。该地址必须是一个 Internet 电子邮件地址。email_address 的数据类型为 nvarchar(128),无默认值。例如,SQL Server 代理的帐户可能会通过地址 SqlAgent@Adventure-Works.com 发送电子邮件。

  • [ @display_name = ] 'display_name'
    该帐户发出的电子邮件所用的显示名称。display_name 的数据类型为 nvarchar(128),默认值为 NULL。例如,SQL Server 代理的帐户可能会在电子邮件上显示名称 SQL Server Agent Automated Mailer

  • [ @replyto_address = ] 'replyto_address'
    回复该帐户的邮件时使用的地址。replyto_address 的数据类型为 nvarchar(128),默认值为 NULL。例如,给 SQL Server 代理的帐户的回信可能会发送给数据库管理员 danw@Adventure-Works.com

  • [ @description = ] 'description'
    对帐户的说明。description 的数据类型为 nvarchar(256),默认值为 NULL。

  • [ @mailserver_name = ] 'server_name'
    此帐户所用 SMTP 邮件服务器的名称或 IP 地址。运行 SQL Server 的计算机必须能够将 server_name 解析为 IP 地址。server_name 的数据类型为 sysname,无默认值。

  • [ @mailserver_type = ] 'server_type'
    电子邮件服务器的类型。server_type 的数据类型为 sysname,默认值为 'SMTP'

  • [ @port = ] port_number
    电子邮件服务器的端口号。port_number 的数据类型为 int,默认值为 25。

  • [ @username = ] 'username'
    用于登录到电子邮件服务器的用户名。username 的数据类型为 nvarchar(128),默认值为 NULL。如果此参数为 NULL,则数据库电子邮件不对此帐户进行身份验证。如果邮件服务器不要求身份验证,则使用 NULL 作为用户名。

  • [ @password = ] 'password'
    用于登录电子邮件服务器的密码。password 的数据类型为 nvarchar(128),默认值为 NULL。除非指定了用户名,否则无需提供密码。

  • [ @use_default_credentials = ] use_default_credentials
    指定是否使用 SQL Server 数据库引擎的凭据将邮件发送到 SMTP 服务器。use_default_credentials 的数据类型为 bit,默认值为 0。此参数的值为 1 时,数据库邮件将使用数据库引擎的凭据。当此参数为 0 时,数据库邮件将发送 @username@password 参数(如果有),否则,将不使用 @username@password 参数而直接发送邮件。

  • [ @enable_ssl = ] enable_ssl
    指定数据库邮件是否使用安全套接字层对通信进行加密。Enable_ssl 的数据类型为 bit,默认值为 0。

  • [ @account_id = ] account_id OUTPUT
    返回新帐户的帐户 ID。account_id 的数据类型为 int,默认值为 NULL。

返回代码值

0(成功)或 1(失败)

注释

数据库邮件为 @email_address@display_name@replyto_address 提供单独的参数。@email_address 参数为发件人地址。@display_name 参数是在电子邮件的**“发件人:”字段中显示的名称。@replyto_address** 参数是接收电子邮件回复的地址。例如,用于 SQL Server 代理的帐户可以从仅用于 SQL Server 代理的电子邮件地址发送电子邮件。来自该地址的邮件应显示友好名称,以便收件人可以轻松确定是 SQL Server 代理发来的邮件。如果收件人回复该邮件,则回复应发送给数据库管理员,而不是 SQL Server 代理使用的地址。在此情况下,该帐户将使用 SqlAgent@Adventure-Works.com 作为电子邮件地址。显示名称被设置为 SQL Server Agent Automated Mailer。该帐户使用 danw@Adventure-Works.com 作为回复地址,从而将对来自此帐户的邮件的回复发送给数据库管理员,而不是 SQL Server 代理的电子邮件地址。通过为上述三个参数提供独立的设置,数据库邮件允许您配置邮件来适应您的需求。

@mailserver_type 参数是为灵活适应将来版本而提供的。SQL Server 2005 和更高版本支持 @mailserver_type 的值为 'SMTP'

@use_default_credentials 为 1 时,邮件通过 SQL Server 数据库引擎的凭据发送到 SMTP 服务器。如果 @use_default_credentials 为 0,并且为帐户指定了 @username@password,则该帐户将使用 SMTP 身份验证。@username@password 是帐户用于访问 SMTP 服务器的凭据,而不是访问 SQL Server 或计算机所在网络的凭据。

存储过程 sysmail_add_account_spmsdb 数据库中,由 dbo 架构拥有。如果当前数据库不是 msdb,则该过程必须使用由三部分组成的名称执行。

权限

默认情况下,sysadmin 固定服务器角色的成员有执行此过程的权限。

示例

以下示例将创建一个名为 AdventureWorks Administrator 的帐户。此帐户使用电子邮件地址 dba@Adventure-Works.com,并将邮件发送到 SMTP 邮件服务器 smtp.Adventure-Works.com。此帐户发送的电子邮件将在邮件的**“发件人:”**行中显示 AdventureWorks Automated Mailer。对此邮件的回复将发往 danw@Adventure-Works.com。

EXECUTE msdb.dbo.sysmail_add_account_sp
    @account_name = 'AdventureWorks Administrator',
    @description = 'Mail account for administrative e-mail.',
    @email_address = 'dba@Adventure-Works.com',
    @display_name = 'AdventureWorks Automated Mailer',
    @mailserver_name = 'smtp.Adventure-Works.com' ;